/* * public static bool Destroy( GameObject _creature ) * { * if( _creature == null ) * return false; * * CreatureGroupObject _group = GetCreatureGroup( _creature.name ); * * if( _group != null ) * return _group.DestroyCreature( _creature ); * else * return false; * }*/ public static void DestroyGroup(string _name) { CreatureGroupObject _group = GetCreatureGroup(_name); if (_group != null) { _group.DestroyCreatures(); m_CreatureGroups.Remove(_group); } }
/// <summary> /// Finds the nearest creature. /// </summary> /// <returns>The nearest creature.</returns> /// <param name="_name">_name.</param> /// <param name="_origin">_origin.</param> /// <param name="_dist">_dist.</param> public static GameObject FindNearestCreature(string _name, Vector3 _origin, float _dist) { CreatureGroupObject _group = GetCreatureGroup(_name); if (_group == null) { return(null); } return(_group.FindNearestCreature(_origin, _dist)); }
public static void DeathNotice(GameObject _creature) { if (_creature == null) { return; } CreatureGroupObject _group = GetCreatureGroup(_creature.name); if (_group != null) { _group.DeathNotice(_creature); } }
/// <summary> /// Adds a new creature group. /// </summary> /// <returns>The creature group.</returns> /// <param name="_name">_name.</param> public static CreatureGroupObject AddCreatureGroup(string _name) { _name = CleanName(_name); CreatureGroupObject _group = GetCreatureGroup(_name); if (_group == null) { _group = new CreatureGroupObject(CleanName(_name)); m_CreatureGroups.Add(_group); } return(_group); }
public static bool Deregister(GameObject _creature) { if (_creature == null) { return(false); } CreatureGroupObject _group = GetCreatureGroup(_creature.name); if (_group != null) { return(_group.Deregister(_creature)); } else { return(false); } }
/// <summary> /// Register the specified _creature. /// </summary> /// <param name="_creature">_creature.</param> public static void Register(GameObject _creature) { if (_creature == null) { return; } CreatureGroupObject _group = GetCreatureGroup(_creature.name); if (_group == null) { _group = AddCreatureGroup(_creature.name); } if (_group != null) { _group.Register(_creature); } }
public void Spawn() { CreatureGroupObject _group = CreatureRegister.ForceCreatureGroup(Name); if (_group == null) { return; } m_CreaturesCount = _group.Creatures.Count; if (m_CreaturesCount < MaxCreatures) { Vector3 _position = GetSpawnPosition(); Quaternion _rotation = Random.rotation; _rotation.z = 0; _rotation.x = 0; GameObject _creature = (GameObject)Object.Instantiate(Creature, _position, _rotation); if (UseRandomScale) { RandomScaleMin = -1; RandomScaleMax = 1; float _scale_multiplier = (float)Random.Range(RandomScaleMin, RandomScaleMax) / 100 * UseRandomScaleMultiplier * 0.5f; _creature.transform.localScale = _creature.transform.localScale + (_creature.transform.localScale * _scale_multiplier); } _creature.name = Creature.name; if (UseGroupObject) { if (m_GroupObject == null) { m_GroupObject = new GameObject(); m_GroupObject.name = Name + "(Group)"; m_GroupObject.transform.position = Vector3.zero; if (Register != null) { Register.transform.position = Vector3.zero; m_GroupObject.transform.parent = Register.transform; } } _creature.transform.parent = m_GroupObject.transform; if (_creature.GetComponent <ICECreatureControl>() != null) { _creature.GetComponent <ICECreatureControl>().Creature.Status.Reset(); } _creature.SetActive(true); CreatureRegister.Register(_creature); } } }