public ScriptSpawnTransformingUnitFast(DeathmatchMap Map) : base(Map, 140, 70, "Spawn Transforming Unit Fast", new string[] { "Spawn" }, new string[] { "Timer Ended", "Animation Ended", "SFX Ended" }) { UnitSpawner = new ScriptSpawnSquadHelper(Map, this); Leader = new ScriptUnit(Map); _TransformationIndex = 0; }
public MainViewModel() { ExecuteScriptCommand = new RelayCommand <object>(async _ => await Task.Run(() => { ScriptUnit.Execute(); })); PauseCommand = new RelayCommand <object>(async _ => await Task.Run(() => { ScriptUnit.Break(); })); ResumeCommand = new RelayCommand <object>(async _ => await Task.Run(() => { ScriptUnit.Resume(); })); Script = new PythonScript("./script.py"); ScriptUnit = new PythonScriptUnit(Script, true); ConsoleVM = new ConsoleViewModel(); DeviceA = new Device(); DeviceB = new Device(); ConsoleVM.AppendGlobal("devA", DeviceA); ConsoleVM.AppendGlobal("devB", DeviceB); ScriptUnit.AppendGlobal("devA", DeviceA); ScriptUnit.AppendGlobal("devB", DeviceB); }
public ScriptSpawnSquadFast(DeathmatchMap Map) : base(Map, 140, 70, "Spawn Squad Fast", new string[] { "Spawn" }, new string[] { "Timer Ended", "Animation Ended", "SFX Ended" }) { UnitSpawner = new ScriptSpawnSquadHelper(Map, this); Leader = new ScriptUnit(Map); WingmanA = new ScriptUnit(Map); WingmanB = new ScriptUnit(Map); }
private void SpawnSquad() { ScriptUnit LeaderToSpawn = (ScriptUnit)GetDataContainerByID(_LeaderToSpawnID, ScriptUnit.ScriptName); ScriptUnit WingmanAToSpawn = (ScriptUnit)GetDataContainerByID(_WingmanAToSpawnID, ScriptUnit.ScriptName); ScriptUnit WingmanBToSpawn = (ScriptUnit)GetDataContainerByID(_WingmanBToSpawnID, ScriptUnit.ScriptName); Squad RelativeSpawnSquad = null; for (int P = 0; P < Map.ListPlayer.Count && RelativeSpawnSquad == null; P++) { for (int U = 0; U < Map.ListPlayer[P].ListSquad.Count && RelativeSpawnSquad == null; U++) { if (Map.ListPlayer[P].ListSquad[U].ID == _RelativeSpawnUnitID) { RelativeSpawnSquad = Map.ListPlayer[P].ListSquad[U]; } else { continue; } } } if (Map.ListPlayer.Count > SpawnPlayer) { //Don't spawn the unit if there's already on with this ID. for (int U = 0; U < Map.ListPlayer[SpawnPlayer].ListSquad.Count; U++) { if (Map.ListPlayer[SpawnPlayer].ListSquad[U].ID == _LeaderToSpawnID) { return; } } } if (LeaderToSpawn != null && RelativeSpawnSquad != null) { float SpawnPositionX = RelativeSpawnSquad.X + _RelativeSpawnPosition.X; float SpawnPositionY = RelativeSpawnSquad.Y + _RelativeSpawnPosition.Y; Microsoft.Xna.Framework.Vector3 FinalPosition; Map.GetEmptyPosition(new Microsoft.Xna.Framework.Vector3(SpawnPositionX, SpawnPositionY, 0), out FinalPosition); Squad NewSquad = new Squad("", LeaderToSpawn.SpawnUnit, WingmanAToSpawn.SpawnUnit, WingmanBToSpawn.SpawnUnit); NewSquad.IsEventSquad = IsEventSquad; NewSquad.IsPlayerControlled = IsPlayerControlled; AnimationPosition = new Microsoft.Xna.Framework.Vector2(NewSquad.X * Map.TileSize.X, NewSquad.Y * Map.TileSize.Y); UnitSpawned = true; Map.SpawnSquad(SpawnPlayer, NewSquad, _LeaderToSpawnID, FinalPosition, _SpawnLayer); } }
public override void Update(Microsoft.Xna.Framework.GameTime gameTime) { ScriptUnit UnitToSpawn = (ScriptUnit)GetDataContainerByID(_UnitID, ScriptUnit.ScriptName); if (UnitToSpawn != null && !UnitToSpawn.DeleteAfterMission) { if (_IsPresent) { UnitToSpawn.SpawnUnit.TeamTags.AddTag("Present"); } if (_IsEvent) { UnitToSpawn.SpawnUnit.TeamTags.AddTag("Event"); } Map.PlayerRoster.TeamUnits.Add(UnitToSpawn.SpawnUnit); } IsEnded = true; }
private void ParseScript(JSONObject obj) { switch (obj.type) { case JSONObject.Type.OBJECT: if (IsValidScript(obj)) { ScriptUnit unit = new ScriptUnit(obj.list[0].n, obj.list[1].str); scriptList.Add(unit); } break; case JSONObject.Type.ARRAY: foreach (JSONObject subObj in obj.list) { ParseScript(subObj); } break; } }