void OnComplete(AchievementBase baseobj) { //If the OnComplete event is coming from this MajorAchievement, call the RoomManager and add points //Do I really want to let this script handle this kind of active operations??? if (baseobj == majorAchievement) { teleporter.Activated = true; FindObjectOfType <RoomManager>()._ScoreManager.AddPoints(AchievementPoints); } }
void Awake() { //Start listening to the OnComplete event of all achievementbases AchievementBase.AchievementCompleted += OnComplete; //Get its own components to use majorAchievement = GetComponentInChildren <AchievementBase>(); teleporter = GetComponentInChildren <Teleporter>(); SpawnPoint = GetComponentInChildren <SpawnPoint>(); }
public void AddAchievement(AchievementBase _Achievement) { if (_Achievement == null) { return; } if (AchievementList.ContainsKey(_Achievement.AchievementName)) { return; } _Achievement.Init(m_playerstats); AchievementList.Add(_Achievement.AchievementName, _Achievement); }
void Awake() { achievementList = new List <AchievementBase>(); foreach (GameObject a in achievementPrefabList) { GameObject clone = Instantiate(a, this.transform); AchievementBase abase = clone.GetComponent <AchievementBase>(); abase.aSystem = this; achievementList.Add(abase); if (abase.IsCompletedCheck()) //deactivate it if it is done { clone.SetActive(false); } } activepanels = new List <ActivePanelInfo>(); }
public void UpdateAchievement(AchievementBase _Achievement) { foreach (KeyValuePair <string, AchievementBase> qb in AchievementList) { if (qb.Key != _Achievement.AchievementName) { continue; } qb.Value.UpdateAchievement(); Debug.Log(qb.Key + " is now " + qb.Value.AchievementCompleted + "(AchievementCompleted)"); if (qb.Value.AchievementCompleted) { qb.Value.AchievementReward(); qb.Value.AchievementActive = false; } } }
void TriggerAchievementAnimation(AchievementBase ach) { RectTransform canvasRect = canvas.GetComponent <RectTransform>(); float midX = canvasRect.rect.width * 0.5f; float height = canvasRect.rect.height; GameObject panel = Instantiate(achievementPanel); RectTransform panelRect = panel.GetComponent <RectTransform>(); //Set Parent panel.transform.SetParent(canvas.transform, false); //Set Scale float dx = canvasRect.rect.width - panelinfo.width; float dy = height - panelinfo.height; panelRect.sizeDelta = new Vector2(-dx, -dy); //Set Pos Vector3 endPos; //= new Vector3(0, height * 0.5f - panelinfo.height * 0.5f - panelinfo.offsetFromTop - panelinfo.height * activepanels.Count); Vector3 firstEndReference = new Vector3(0, height * 0.5f - panelinfo.height * 0.5f - panelinfo.offsetFromTop); if (activepanels.Count <= 0) { endPos = new Vector3(0, 0, 0); } else { endPos = new Vector3(0, -panelinfo.height); } Vector3 startPos = new Vector3(0, height * 0.5f + panelinfo.height * 0.5f); panelRect.localPosition = startPos; float moveSpd = (firstEndReference - startPos).magnitude / panelinfo.moveTime; //Init values/text AchievementPanel panelScript = panel.GetComponent <AchievementPanel>(); panelScript.Init(ach.ach_name, ach.description); ActivePanelInfo api = new ActivePanelInfo(panel, panelinfo.lifeTime, startPos, endPos, panelinfo.moveTime); api.moveSpd = moveSpd; activepanels.Add(api); }
public void UnlockAchievement(AchievementBase achievement) { var achievementDto = AchievementRepository.GetAchievements().Single(a => a.AchievementType == achievement.GetType()); achievementDto.IsCompleted = true; var staticAnalysisAchievement = achievement as StaticAnalysisAchievementBase; if (staticAnalysisAchievement != null) { achievementDto.CodeOrigin = staticAnalysisAchievement.AchievementCodeOrigin; } AchievementRepository.MarkAchievementAsCompleted(achievementDto); OnAchievementsUnlocked(this, new AchievementEventArgs { UnlockedAchievements = new[] { achievementDto } }); }
public void ChangeAchievementStatus(AchievementBase achievement) { PlayerPrefs.SetInt("Achievement_" + achievement.Id, (int)achievement.AchievementStatus); }
public void AchievementUnlocked(AchievementBase ach) { //queue up the visual effect of achievement unlock thing TriggerAchievementAnimation(ach); Debug.Log("Achievement Unlocked: " + ach.ach_name); }