void OnEvent(GameEvent ev) { switch (ev.Type()) { case GameEventType.EVENT_START_QUEST: { EventStartQuest start = (EventStartQuest)ev; if (start.quest == QuestType.QT_GUNS) { force_gun = true; } if (start.quest == QuestType.QT_LACAJA && LaCaja_spawn) { if (spawned_item != null) { ItemManager.Instance.RemoveFromitemsInstances(spawned_item); GameObject.Destroy(spawned_item); } SpawnLACAJA(); } break; } case GameEventType.EVENT_END_QUEST: { EventEndQuest start = (EventEndQuest)ev; if (start.quest == QuestType.QT_GUNS) { force_gun = false; } break; } case GameEventType.EVENT_MATCH_START: { SpawnItem(); timer.Start(); break; } case GameEventType.EVENT_ITEM_GRABBED: { EventItemGrabbed grab = (EventItemGrabbed)ev; if (grab.item == spawned_item) { spawned_item = null; } break; } default: Debug.LogError("ItemSpawner: Invalid call to OnEvent"); break; } }
public void StartGrabbingItem(PlayerStats ins, Item it) { if (ins != null && it != null) { if (!it.GetIsGrabbed() && !ins.GetHasGrabbedItem()) { ins.SetGrabbedItem(it); it.SetGrabbedBy(ins); EventItemGrabbed ev = new EventItemGrabbed(it, ins); EventManager.Instance.SendEvent(ev); it.OnPlayerGrabBase(ins); it.OnPlayerGrab(ins); } } }
private void OnEvent(GameEvent ev) { switch (ev.Type()) { case GameEventType.EVENT_ITEM_GRABBED: { EventItemGrabbed r_ev = (EventItemGrabbed)ev; TryRemoveItem(r_ev.item); break; } case GameEventType.EVENT_ITEM_DROPPED: { EventItemDropped r_ev = (EventItemDropped)ev; TryAddItem(r_ev.item); break; } } }
private void OnEvent(GameEvent ev) { switch (ev.Type()) { case GameEventType.EVENT_ITEM_GRABBED: { EventItemGrabbed r_ev = (EventItemGrabbed)ev; if (r_ev.player == stats) { r_ev.item.gameObject.transform.parent = item_parent.transform; r_ev.item.gameObject.transform.localPosition = new Vector3(0, 0, 0); r_ev.item.gameObject.transform.localEulerAngles = new Vector3(0, 0, 0); has_item = true; } break; } case GameEventType.EVENT_ITEM_DROPPED: { EventItemDropped r_ev = (EventItemDropped)ev; if (r_ev.player == stats) { has_item = false; } break; } default: break; } }