Esempio n. 1
0
    // Use this for initialization

    void Start()
    {
        //if (unitFramePrefab != null) unitFrame = GameObject.Instantiate(unitFramePrefab, transform);
        monsters.Add(this);
        if (GetComponent <RewardGiver>().generatedMonster)
        {
            return;
        }
        int spiritRoll = Random.Range(0, 200);

        if (spiritRoll < 10)
        {
            var ability = AbilityGenerator.Generate(GetComponent <MonsterScaler>().level);
            if (ability is PassiveAbility passiveAbility)
            {
                GetComponent <AbilityUser>().soulGemPassive = passiveAbility;
            }
            else
            {
                GetComponent <AbilityUser>().soulGemActives.Add((ActiveAbility)ability);
            }
            if (GetComponent <AbilityUser>().soulGemPassive != null)
            {
                GetComponent <AbilityUser>().AddPassive(GetComponent <AbilityUser>().soulGemPassive);
            }
        }
        renderers = GetComponentsInChildren <Renderer>();
        monsterAi = GetComponent <MonsterAi>();
        var nma = GetComponent <NavMeshAgent>();

        nma.speed       *= 3; // speed multiplier to make game harder
        nma.acceleration = nma.speed * 1.5f;
        nma.angularSpeed = 3600f;
    }
Esempio n. 2
0
        public static BattleGroupEntity BuildBattleGroupEntity(int bg_id)
        {
            using (var db = new MinionWarsEntities())
            {
                BattleGroupEntity bge = new BattleGroupEntity();

                bge.bg = db.Battlegroup.Find(bg_id);
                if (bge.bg != null)
                {
                    bge.frontline   = new List <AssignmentGroupEntity>();
                    bge.backline    = new List <AssignmentGroupEntity>();
                    bge.supportline = new List <AssignmentGroupEntity>();

                    List <BattlegroupAssignment> assignments = db.BattlegroupAssignment.Where(x => x.battlegroup_id == bg_id).ToList();
                    if (assignments != null)
                    {
                        foreach (BattlegroupAssignment a in assignments)
                        {
                            AssignmentGroupEntity age = new AssignmentGroupEntity();
                            age.initialCount   = a.group_count;
                            age.remainingCount = a.group_count;
                            age.turnStartCount = a.group_count;
                            age.minionData     = db.Minion.Find(a.minion_id);
                            age.CalculateGroupStats(bge.bg, a.line);
                            age.remainingHealth = age.stats.health;
                            age.attack          = AbilityGenerator.GenerateAttack(a.line, age.stats, age.minionData);
                            //age.ability = AbilityGenerator.GenerateAbility(a.line, age.stats, age.minionData);

                            switch (a.line)
                            {
                            case 0:
                                bge.frontline.Add(age);
                                break;

                            case 1:
                                bge.backline.Add(age);
                                break;

                            case 2:
                                bge.supportline.Add(age);
                                break;
                            }
                        }
                    }
                }
                else
                {
                    return(null);
                }

                return(bge);
            }
        }
 private void PlaceAbility()
 {
     if (_level == 1 || _level % 3 == 0)
     {
         try
         {
             var   ability   = AbilityGenerator.CreateAbility();
             int   roomIndex = Game.Random.Next(0, _map.Rooms.Count - 1);
             Point location  = _map.GetRandomLocationInRoom(_map.Rooms[roomIndex]);
             _map.AddTreasure(location.X, location.Y, ability);
         }
         catch (InvalidOperationException)
         {
         }
     }
 }
 private void PlaceAbility()
 {
     if (_level == 1 || _level % 3 == 0)
     {
         Ability ability;
         try
         {
             ability = AbilityGenerator.CreateAbility();
         }
         catch (InvalidOperationException)
         {
             return;
         }
         int   roomIndex = Game.Random.Next(0, _map.Rooms.Count - 1);
         Point location  = _map.GetRandomLocationInRoom(_map.Rooms[roomIndex]);
         ability.go = GameObject.Instantiate <GameObject>(Game.Items[ability.Name],
                                                          new Vector2(location.X, location.Y), Quaternion.identity);
         ability.go.transform.SetParent(Game.itemsHolder);
         ability.go.GetComponent <Renderer>().enabled = false;
         Game.ItemsTiles[location.X, location.Y]      = ability;
         _map.AddTreasure(location.X, location.Y, ability);
     }
 }