public override Action GetTrigger() { bool triggered = this.triggered; string givenTime = this.givenTime; TICWorld.Data data = this.data; return(() => { string currenttime = Utils.GetTimeAsString(Main.time); if (data.enabled && currenttime == givenTime && !triggered) { ModContent.GetInstance <ExtraWireTrips>().AddWireUpdate(data.x, data.y - 1); triggered = true; if (data.chatOutput) { world.SendChatMsg($"Reached time {currenttime}, triggering.", data.x, data.y); } } else if (currenttime != givenTime && triggered) { triggered = false; } }); }
public override Action GetTrigger() { TICWorld.Data data = this.data; List <Player> triggeredPlayers = new List <Player>(); return(() => { foreach (var player in Main.player) { if (player.dead && data.enabled && !triggeredPlayers.Contains(player)) { triggeredPlayers.Add(player); mod.playerDataStore.AddItem(storeName, player); ModContent.GetInstance <ExtraWireTrips>().AddWireUpdate(data.x, data.y - 1); if (data.chatOutput) { world.SendChatMsg($"{player.name} died, triggering.", data.x, data.y); } } else if (!player.dead && triggeredPlayers.Contains(player)) { triggeredPlayers.Remove(player); } } }); }
public virtual string Execute(int i, int j, TICWorld world) { this.world = world; this.data = world.data[(i, j)];