public override void OnSignalRecieved(eObject source, string[] signal) { base.OnSignalRecieved(source, signal); switch (signal[0]) { case "playerPos": hasPos = true; playerPos.x = float.Parse(signal[1]); playerPos.y = float.Parse(signal[2]); playerPos.z = float.Parse(signal[3]); break; //case "damage": // health -= float.Parse(signal[1]); // Debug.Log(health); // Vector3 diff; // diff.x = float.Parse(signal[2]); // diff.y = float.Parse(signal[3]); // diff.z = float.Parse(signal[4]); // diff = transform.position - diff; // diff.y = 0; // hitbackSpeed = diff.normalized * 5f; //5: hitback speed // break; case "attack": TriggerEvent(this, "attack", attackGap, false); if (hasPos && Vector3.Distance(transform.position, playerPos) <= attackRange) { TriggerEvent(this, "attackGo", channelingTime, false); slowed = true; } break; case "attackGo": Instantiate(attackObject, transform.position + transform.rotation * new Vector3(0.0f, 0.3f, 0.75f), transform.rotation). GetComponent <Enemy_StrightBulletObj>().target = GameObject.FindGameObjectWithTag("Player").transform; slowed = false; break; case "playerEnter": //TriggerEvent (this, "attack"); hasPos = true; break; case "playerExit": hasPos = false; break; case "attackThunder": TriggerEvent(this, "attackThunder", thunderGap, false); Vector2 rnd = Random.insideUnitCircle; eObject thunder = Instantiate(m_thunderPrefab, transform.position + new Vector3(rnd.x, 0, rnd.y) * 8.0f, Quaternion.identity).GetComponent <eObject>(); thunder.TriggerEvent(thunder, "Activate", 2.5f); break; } }
public override void OnObjectEnter(eObject obj) { base.OnObjectEnter(obj); if (obj.GetState("CollectableObject") > 0) { if (!objectList.Exists((eObject e) => e == obj ? true : false)) { objectList.Add(obj); } } if (obj.GetState("autoCollect") > 0) { m_slime.TriggerEvent(obj, "pickUp"); } }