public virtual void SetData(int spawnId, DTCharacter data) { this.Data = data; this.SpawnId = spawnId; skeletonAnimation.AnimationState.AddAnimation(0, AnimationAction.Idle, true, 0); hpBar.Init(this); Size = meshRender.bounds.size; SpineScale = spine.transform.localScale.x; }
void AddFormation(List <int> defensorRounds, List <int> attackerRounds) { ClearCharacters(); AttackterTotalMaxHP = 0; DefensorTotalMaxHP = 0; foreach (var unit in units) { if (defensorRounds.Contains(unit.Data.Round)) { DTCharacter data = new DTCharacter(GameConfig.DefensorBaseHP, EnCharacterType.Defensor); var character = Instantiate(prefabDefensor, unit.transform); character.gameObject.SetActive(true); character.SetData(GetSpawnId(), data); character.transform.localPosition = new Vector3(0, -character.Size.y * character.SpineScale, 0); defensors.Add(character); unit.UpdateCharacter(character); character.UpdateStandingBase(unit); character.OnCharacterDie = OnCharacterDie; miniMap.AddCharacter(character); DefensorTotalMaxHP += character.Data.BaseHP; } else if (attackerRounds.Contains(unit.Data.Round)) { DTCharacter data = new DTCharacter(GameConfig.AttackerBaseHP, EnCharacterType.Attacker); var character = Instantiate(prefabAttacker, unit.transform); character.gameObject.SetActive(true); character.SetData(GetSpawnId(), data); character.transform.localPosition = new Vector3(0, -character.Size.y * character.SpineScale, 0); attackers.Add(character); unit.UpdateCharacter(character); character.UpdateStandingBase(unit); character.OnCharacterDie = OnCharacterDie; miniMap.AddCharacter(character); AttackterTotalMaxHP += character.Data.BaseHP; } } DefensorTotalHP = DefensorTotalMaxHP; AttackterTotalHP = AttackterTotalMaxHP; IsReady = true; miniMap.gameObject.SetActive(true); }