Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Foundation
- import UIKit
- import Firebase
- import UnityAds
- import FirebaseDatabase
- let BASE_URL = "...firebaseio.com"
- //Firebase ref
- let userID = UserDefaults.standard.value(forKey: "uid") as! String
- var ref = Database.database().reference()
- let currentUser = ref.child("users").child("userID")
- let currencyBalance = "CurrencyBalance"
- class GameCoins: UIViewController, UnityAdsDelegate
- {
- @IBOutlet weak var button: UIButton!
- @IBOutlet weak var currencyLabel: UILabel!
- @IBOutlet weak var statusLabel: UILabel!
- var extraPoints = 0
- var totalPoints = 0
- var ads = 0
- override func viewDidLoad()
- {
- UnityAds.initialize("...", delegate: self)
- button.isHidden = true
- currencyLabel.text = String(totalPoints)
- super.viewDidLoad()
- }
- override func viewWillAppear(_ animated: Bool) {
- self.updateCurrencyBalance()
- }
- func updateCurrencyBalance()
- {
- //Get currency balance from persistent storage and display it
- if let wrappedBalance = UserDefaults.standard.object(forKey: "uid") as! NSNumber? {
- self.currencyLabel.text = wrappedBalance.stringValue
- } else {
- self.currencyLabel.text = "(self.totalPoints)"
- }
- }
- //UnityAds implementation
- func unityAdsReady(_ placementId: String) {
- print("UnityAd Video is READY!")
- button.isHidden = false
- }
- func unityAdsDidStart(_ placementId: String) {
- print("UnityAd Video is LAUNCHED!")
- }
- func unityAdsDidError(_ error: UnityAdsError, withMessage message: String) {
- print("Error! UnityAd is FAILED!")
- }
- func loadAndShowUnityAd() {
- let placement = "rewardedVideo"
- if (UnityAds.isReady(placement)) {
- //a video is ready & placement is valid
- UnityAds.show(self, placementId: placement)
- }
- }
- func unityAdsDidFinish(_ placementId: String, with state: UnityAdsFinishState) {
- if (state != .skipped) {
- //reward the player
- self.totalPoints += 1
- currentUser.updateChildValues(["extraPoints" : extraPoints])
- currentUser.updateChildValues(["timeStamp" : 0])
- currentUser.updateChildValues(["pointsEarned" : self.totalPoints])
- currencyLabel.text = String(extraPoints)
- }
- }
- @IBAction func triggerVideo(sender: AnyObject)
- {
- loadAndShowUnityAd()
- let placement = "rewardedVideo"
- if (UnityAds.isReady(placement)) {
- //a video is ready & placement is valid
- UnityAds.show(self, placementId: placement)
- }
- currentUser.updateChildValues(["extraPoints" : extraPoints])
- currentUser.updateChildValues(["timeStamp" : 0])
- currentUser.updateChildValues(["pointsEarned" : self.totalPoints])
- let userDefaults = UserDefaults.standard
- if userDefaults.bool(forKey: "extraPoints") == false {
- userDefaults.set(true, forKey: "extraPoints")
- userDefaults.synchronize() // forces the app to update the NSUserDefaults
- return
- }
- }
Add Comment
Please, Sign In to add comment