private Npc SpawnNpc(MonsterId id, Vector3 position) { GameObject go = Resources.Load("Prefabs/entity/" + id.ToString() + "/" + id.ToString()) as GameObject; if (go == null) { throw new NullReferenceException("Prefabs/entity/" + id.ToString() + "/" + id); } GameObject result = Object.Instantiate(go, position, Quaternion.identity) as GameObject; EnemyData data = result.GetComponent <EnemyData>(); return(RegisterNewNpc(data, id)); }
public Monster SpawnMonster(MonsterId id, Vector3 position, bool isMinion, int level, int team = 0) { GameObject go = Resources.Load("Prefabs/entity/" + id.ToString() + "/" + id.ToString()) as GameObject; if (go == null) { throw new NullReferenceException("Prefabs/entity/" + id.ToString() + "/" + id); } GameObject result = Object.Instantiate(go, position, Quaternion.identity) as GameObject; EnemyData data = result.GetComponent <EnemyData>(); Monster m = RegisterNewMonster(data, id, isMinion, level); if (team > 0) { m.Team = team; } return(m); }
/// <summary> /// Registruje NPC do hry /// </summary> public Npc RegisterNewNpc(EnemyData data, MonsterId id) { Npc npc; npc = new Npc(id.ToString(), data, MonsterTemplateTable.Instance.GetType(id)); data.SetOwner(npc); npc.Init(); npc.isMinion = false; npc.InitTemplate(); return(npc); }
/*public Monster RegisterNewMonster(EnemyData data, String name, int id, int level, Dictionary<string, string> parameters) * { * Monster monster; * * MonsterId mId = (MonsterId) Enum.Parse(typeof (MonsterId), ""+id); * * MonsterTemplate mt = MonsterTemplateTable.Instance.GetType(mId); * * if (mt is BossTemplate) * { * monster = new Boss(name, data, (BossTemplate) mt); * } * else * { * monster = new Monster(name, data, mt); * } * * data.SetOwner(monster); * monster.SetLevel(level); * * monster.Init(); * monster.InitTemplate(); * * return monster; * }*/ //TODO make use of parameters dictionary to pass level, etc /// <summary> /// Registruje monstrum do hry podle MonsterID /// </summary> private Monster RegisterNewMonster(EnemyData data, MonsterId id, bool isMinion, int level, Dictionary <string, string> parameters = null) { Monster monster; MonsterTemplate mt = MonsterTemplateTable.Instance.GetType(id); if (mt is BossTemplate) { monster = new Boss(id.ToString(), data, (BossTemplate)mt); } else { monster = new Monster(id.ToString(), data, mt); } data.SetOwner(monster); monster.SetLevel(level); monster.Init(); monster.isMinion = isMinion; monster.InitTemplate(); return(monster); }
public Boss SpawnBoss(MonsterId id, Vector3 position, int level) { GameObject go = Resources.Load("Prefabs/entity/" + id.ToString() + "/" + id.ToString()) as GameObject; if (go == null) { throw new NullReferenceException("Prefabs/entity/" + id.ToString() + "/" + id); } GameObject result = Object.Instantiate(go, position, Quaternion.identity) as GameObject; EnemyData data = result.GetComponent <EnemyData>(); Monster m = RegisterNewMonster(data, id, false, level); if (m is Boss) { return((Boss)m); } else { Debug.LogError("tried to spawn boss - but it was a monster ! fix it in data"); throw new NullReferenceException(); } }
public override string[] SaveArgs() { return(new[] { Amount.ToString(), MonsterId.ToString() }); }