public void Start() { AttackSpeed = 1f; Random.Range(1f, 2f); AttackDamage = 2f; // Random.Range(1.7f,2.5f); if (Game.IsSinglePlayer()) { uid = UidGenerator.GetNewUid(); } PlayerData = Registry.Player [PlayerData.uid].GetComponent <PlayerData> (); GetComponentInChildren <Renderer>().material.color = PlayerData.color; }
public virtual void Spawn() { var shipUid = UidGenerator.GetNewUid(); var island = Registry.Islands[gameObject.GetComponent <IslandData>().Uid]; var islandData = island.GetComponent <IslandData>(); // 1) create ship by type var go = GameObjectFactory.CreateShip(shipUid, islandData.ShipType, islandData.PlayerData.playerType); // 2) append ship at island go.transform.Translate(island.transform.position); go.transform.parent = island.transform; // 3) set ship data var shipData = go.AddComponent <ShipData>(); shipData.shipType = islandData.ShipType; shipData.uid = shipUid; shipData.PlayerData = islandData.PlayerData; // 4) colorize @see http://answers.unity3d.com/questions/483419/changing-color-of-children-of-instantiated-prefab.html //go.GetComponentInChildren<Renderer>().material.color = Island.PlayerData.color - new Color(0.5f,0.5f,0.5f); // 5) life data var lifeData = go.AddComponent <LifeData>(); lifeData.CurrentHp = lifeData.MaxHp = 10; // 6) host fires attacks go.AddComponent <Assault>(); go.AddComponent <Defence>(); // 7) reset spawn timer ResetSpawnTimer(); // Debug.Log("spawn [uid=" + shipUid + "|type=" + shipData.shipType + "] at [uid=" + islandData.uid + "|type=" + islandData.islandType + "] for player [" + shipData.playerUid + "]"); }
public override void Spawn() { // check if spawning event already triggered if (_fsm.ActiveStateName.Equals("Spawning Ship")) { return; } // 1) block spawnings until network event did actually spawn the ship _fsm.SendEvent("Spawn"); // 2) broadcast spawn event var json = PackageFactory.CreateSpawnMessage( new[] { new JObject { { "island_uid", Island.Uid }, { "uid", UidGenerator.GetNewUid() } } }); SocketHandler.EmitNow("spawn-unit", json); // 3 schedule event Spawn(json); }