// 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; }
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); } }