public void returnSpawnUnit(GameObject go, UnitAlliance alliance) { switch (alliance) { case UnitAlliance.FriendlyVillager: friendlyVillagers.Add(go); friendlyUnits.Add(go); allUnits.Add(go); break; case UnitAlliance.FriendlyFighter: friendlyFighters.Add(go); friendlyUnits.Add(go); allUnits.Add(go); AttackSystem atk = go.GetComponent <AttackSystem>(); atk.faction = UnitAlliance.FriendlyFighter; break; case UnitAlliance.EnemyFighter: enemyFighters.Add(go); allUnits.Add(go); AttackSystem atkE = go.GetComponent <AttackSystem>(); atkE.faction = UnitAlliance.EnemyFighter; break; default: throw new System.ArgumentOutOfRangeException(); } }
public void CmdSpawnUnit(Vector3 position, GameObject netPrefab, UnitAlliance alliance, int unitData) { GameObject go = GameObject.Instantiate(netPrefab, position, Quaternion.identity); go.GetComponent <AddBody>().BuildBody(UnitManager.i.unitData[unitData]); NetworkServer.Spawn(go); UnitManager.i.returnSpawnUnit(go, alliance); }
public CombatUnitModel(int id, UnitAlliance unitAlliance, IUnitMovementStrategy movementStrategy, IUnitHealthStrategy healthStrategy) { Id = id; Alliance = unitAlliance; _movementStrategy = movementStrategy; _healthStrategy = healthStrategy; }
private static int GetAliveUnitCount(UnitAlliance alliance) { int count = 0; foreach (var unit in GetUnit(alliance)) { count++; } return(count); }
public static List <Unit> GetUnit(UnitAlliance alliance) { List <Unit> units = new List <Unit>(); foreach (var unit in instance.AllUnits) { if (unit.Alliance == alliance) { units.Add(unit); } } return(units); }
public ICombatUnitModel Create(IPreparationUnitModel preparationUnit, UnitAlliance alliance) { return(_factory.Create(preparationUnit.Id, alliance)); }
// 유닛 생성 시스템 public Unit(UnitAlliance alliance, UnitSpecies species = UnitSpecies.NULL, int lv = 1) { Seed = UnityEngine.Random.Range(0, 10000); Alliance = alliance; if (species == UnitSpecies.NULL) { Species = (UnitSpecies)(Seed % 5); // 0 ~ 3 } else { Species = species; } Modifier = (UnitModifier)(Seed % 6); Name = Data.GetRandomName(Seed); SpriteNumber = Data.SpeciesToSpriteNumbers[Species][Seed % Data.SpeciesToSpriteNumbers[Species].Count]; InColor = new Color(0.9f, 0.9f, 0.9f); OutColor = Color.clear; Common.Command.AddSkill(this, new Skills.Move.Pawn()); Common.Command.AddSkill(this, new Skills.Basic.Fireball()); Common.Command.AddSkill(this, new Skills.Basic.Heal()); Common.Command.AddSkill(this, new Skills.Basic.Scratch()); // 인간형 초기 스텟 if (Species == UnitSpecies.Human) { MaxHP = 35; Strength = 10; Agility = 10; Mobility = 3; CriRate = 10; } else if (Species == UnitSpecies.SmallBeast) { MaxHP = 20; Strength = 12; Agility = 11; Mobility = 4; CriRate = 11; } else if (Species == UnitSpecies.MediumBeast) { MaxHP = 30; Strength = 12; Agility = 10; Mobility = 3; CriRate = 11; } else if (Species == UnitSpecies.LargeBeast) { MaxHP = 50; Strength = 15; Agility = 12; Mobility = 2; CriRate = 11; } Level = lv; CurEXP = 0; NextEXP = 10 * Level * (Level + 5); }
public void SpawnUnit(Vector3 position, UnitAlliance alliance, int unitDataType, GameObject prefab = null) { Cmds.i.CmdSpawnUnit(position, prefab ?? unitPrefab, alliance, unitDataType); }