public TeraData(string version) { SkillDatabase = new SkillDatabase($"{Directory.GetCurrentDirectory()}\\Resources\\"); NpcDatabase = new NpcDatabase(npcList.ToList()); OpCodeNamer = new OpCodeNamer($"{Directory.GetCurrentDirectory()}\\Resources\\{version}.txt"); SysMessageNamer = new OpCodeNamer($"{Directory.GetCurrentDirectory()}\\Resources\\smt_{version}.txt"); }
internal TeraData(BasicTeraData basicData, string region, bool detectBosses) { string suffix = (basicData.Language == "Auto")?(region != "EU") ? region : "EU-EN": basicData.Language; SkillDatabase = new SkillDatabase(basicData.ResourceDirectory, suffix); HotDotDatabase = new HotDotDatabase(basicData.ResourceDirectory, suffix); NpcDatabase = new NpcDatabase(basicData.ResourceDirectory, suffix, detectBosses); //OpCodeNamer = new OpCodeNamer(Path.Combine(basicData.ResourceDirectory, $"opcodes\\opcodes-{region}.txt")); }
internal TeraData(BasicTeraData basicData, string region) { // Region = basicData.Regions.Single(x => x.Key == region); string suffix = (basicData.Language == "Auto") ? (region != "EU") ? region : "EU-EN" : basicData.Language; SkillDatabase = new SkillDatabase(basicData.ResourceDirectory, suffix); NpcDatabase = new NpcDatabase(basicData.ResourceDirectory, suffix); //OpCodeNamer = new OpCodeNamer(Path.Combine(basicData.ResourceDirectory, $"opcodes\\opcodes-{region}.txt")); }
void GetFoundedSkills(InteractiveObject selected) { for (int i = 0; i < 4; i++) { if (i < GameManager.Instance.skillsCurrent.Count) { bool found = false; foreach (GameObject skill in NpcDatabase.GetSkillRelationsImmune(selected)) { // print("foreach immune"); if (GameManager.Instance.skillsCurrent[i] == skill) { skillIcons[i].GetComponent <SkillLocalUiController>().SetImmune(); found = true; break; } } if (!found) { foreach (GameObject skill in NpcDatabase.GetSkillRelationsWeak(selected)) { // print("foreach weak"); if (GameManager.Instance.skillsCurrent[i] == skill) { skillIcons[i].GetComponent <SkillLocalUiController>().SetWeak(); found = true; break; } } } if (!found) { skillIcons[i].GetComponent <SkillLocalUiController>().SetClear(); } } else { skillIcons[i].GetComponent <SkillLocalUiController>().SetClear(); } } }
void Awake() { // First we check if there are any other instances conflicting if (Instance != null && Instance != this) { // If that is the case, we destroy other instances Destroy(gameObject); } else { // Here we save our singleton instance Instance = this; // Furthermore we make sure that we don't destroy between scenes (this is optional) DontDestroyOnLoad(gameObject); NpcDatabase.ClearLists(); transform.FindChild("Canvas").gameObject.SetActive(true); GameObject playerGO = Instantiate(stageRandomController.player, partyCells[0].transform.position, Quaternion.identity) as GameObject; playerGO.name = "Player"; playerGO.tag = "Ally"; player = playerGO.GetComponent <InteractiveObject>(); player.inParty = true; GetRandomSkills(skills); skillsCurrent = skills; foreach (NpcController mob in stageRandomController.npcList) // generate mobs stats on start of new game { mob.objectController.GenerateDynamicStats(); } player.GenerateDynamicStats(); _levelMapGenerator.GenerateMap(roomsMinimum); } }
public void Damage(float baseDmg, InteractiveObject attacker) { float DMG = 0; if (baseDmg > 0) { if (!inParty && attacker != this) { if (!attacker.inParty && npcControl.agressiveTo != NpcController.Target.everyone) { npcControl.agressiveTo = NpcController.Target.enemies; } else { npcControl.agressiveTo = NpcController.Target.everyone; //actionOnDialog = DialogAction.none; } } DMG = baseDmg; // CHECK IF MOB IS INV/WEAK TO SKILL SkillController activeSkill; if (GameManager.Instance.activeSkill != null) { activeSkill = GameManager.Instance.activeSkill.GetComponent <SkillController>(); if (activeSkill.skillType == SkillController.Type.none) // simple attack { sendWeak = false; NpcDatabase.CheckSkillRelation(false, this); //GameManager.Instance.UpdatePressTurns(GameManager.Instance.pressTurns - 1); } else { foreach (SkillController.Type skill in weakToDynamic) { if (skill == activeSkill.skillType) { DMG = baseDmg * 2; if (attacker == this && GameManager.Instance.attackTarget != this) { } else { NpcDatabase.CheckSkillRelation(true, this); if (defendAgainst != attacker) { sendWeak = true; } //GameManager.Instance.UpdatePressTurns(GameManager.Instance.pressTurns); break; } } } foreach (SkillController.Type skill in invToDynamic) { if (skill == activeSkill.skillType) { DMG = baseDmg / 2; if (attacker == this && GameManager.Instance.attackTarget != this) { } else { NpcDatabase.CheckSkillRelation(false, this); sendWeak = false; //GameManager.Instance.UpdatePressTurns(GameManager.Instance.pressTurns - 1); break; } } } } } } attacker._anim.SetTrigger("Action"); if (this != attacker) { StartCoroutine("ActionTriggerDelay", DMG); } else { StartCoroutine("ActionTriggerDelaySelf", DMG); } if (defendAgainst == attacker) { localCanvas._animator.SetTrigger("Defend"); } }