Guest User

Untitled

a guest
Mar 19th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. import Foundation
  2. import UIKit
  3. import Firebase
  4. import UnityAds
  5. import FirebaseDatabase
  6.  
  7. let BASE_URL = "...firebaseio.com"
  8.  
  9. //Firebase ref
  10. let userID = UserDefaults.standard.value(forKey: "uid") as! String
  11.  
  12. var ref = Database.database().reference()
  13.  
  14. let currentUser = ref.child("users").child("userID")
  15. let currencyBalance = "CurrencyBalance"
  16.  
  17. class GameCoins: UIViewController, UnityAdsDelegate
  18. {
  19. @IBOutlet weak var button: UIButton!
  20. @IBOutlet weak var currencyLabel: UILabel!
  21. @IBOutlet weak var statusLabel: UILabel!
  22.  
  23. var extraPoints = 0
  24. var totalPoints = 0
  25. var ads = 0
  26.  
  27. override func viewDidLoad()
  28. {
  29. UnityAds.initialize("...", delegate: self)
  30.  
  31. button.isHidden = true
  32. currencyLabel.text = String(totalPoints)
  33. super.viewDidLoad()
  34. }
  35.  
  36. override func viewWillAppear(_ animated: Bool) {
  37. self.updateCurrencyBalance()
  38. }
  39.  
  40.  
  41. func updateCurrencyBalance()
  42. {
  43. //Get currency balance from persistent storage and display it
  44. if let wrappedBalance = UserDefaults.standard.object(forKey: "uid") as! NSNumber? {
  45. self.currencyLabel.text = wrappedBalance.stringValue
  46. } else {
  47. self.currencyLabel.text = "(self.totalPoints)"
  48. }
  49. }
  50.  
  51. //UnityAds implementation
  52. func unityAdsReady(_ placementId: String) {
  53. print("UnityAd Video is READY!")
  54. button.isHidden = false
  55. }
  56.  
  57. func unityAdsDidStart(_ placementId: String) {
  58. print("UnityAd Video is LAUNCHED!")
  59. }
  60.  
  61. func unityAdsDidError(_ error: UnityAdsError, withMessage message: String) {
  62. print("Error! UnityAd is FAILED!")
  63. }
  64.  
  65. func loadAndShowUnityAd() {
  66. let placement = "rewardedVideo"
  67. if (UnityAds.isReady(placement)) {
  68. //a video is ready & placement is valid
  69. UnityAds.show(self, placementId: placement)
  70. }
  71. }
  72.  
  73. func unityAdsDidFinish(_ placementId: String, with state: UnityAdsFinishState) {
  74. if (state != .skipped) {
  75. //reward the player
  76. self.totalPoints += 1
  77. currentUser.updateChildValues(["extraPoints" : extraPoints])
  78. currentUser.updateChildValues(["timeStamp" : 0])
  79. currentUser.updateChildValues(["pointsEarned" : self.totalPoints])
  80. currencyLabel.text = String(extraPoints)
  81. }
  82. }
  83.  
  84. @IBAction func triggerVideo(sender: AnyObject)
  85. {
  86. loadAndShowUnityAd()
  87.  
  88. let placement = "rewardedVideo"
  89. if (UnityAds.isReady(placement)) {
  90. //a video is ready & placement is valid
  91. UnityAds.show(self, placementId: placement)
  92. }
  93.  
  94. currentUser.updateChildValues(["extraPoints" : extraPoints])
  95. currentUser.updateChildValues(["timeStamp" : 0])
  96. currentUser.updateChildValues(["pointsEarned" : self.totalPoints])
  97.  
  98. let userDefaults = UserDefaults.standard
  99.  
  100. if userDefaults.bool(forKey: "extraPoints") == false {
  101. userDefaults.set(true, forKey: "extraPoints")
  102. userDefaults.synchronize() // forces the app to update the NSUserDefaults
  103. return
  104. }
  105. }
Add Comment
Please, Sign In to add comment