Ejemplo n.º 1
0
    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();
        }
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
        public CombatUnitModel(int id, UnitAlliance unitAlliance, IUnitMovementStrategy movementStrategy,
                               IUnitHealthStrategy healthStrategy)
        {
            Id       = id;
            Alliance = unitAlliance;

            _movementStrategy = movementStrategy;
            _healthStrategy   = healthStrategy;
        }
Ejemplo n.º 4
0
        private static int GetAliveUnitCount(UnitAlliance alliance)
        {
            int count = 0;

            foreach (var unit in GetUnit(alliance))
            {
                count++;
            }

            return(count);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 public ICombatUnitModel Create(IPreparationUnitModel preparationUnit, UnitAlliance alliance)
 {
     return(_factory.Create(preparationUnit.Id, alliance));
 }
Ejemplo n.º 7
0
        // 유닛 생성 시스템
        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);
        }
Ejemplo n.º 8
0
 public void SpawnUnit(Vector3 position, UnitAlliance alliance, int unitDataType, GameObject prefab = null)
 {
     Cmds.i.CmdSpawnUnit(position, prefab ?? unitPrefab, alliance, unitDataType);
 }