//Adds stats of the new Entity to the Lists public void AddEntity(int[] stats, string[] traits) { ID.Add(next_ID); Alive.Add(next_ID); Str.Add(stats[0]); Agi.Add(stats[1]); Int.Add(stats[2]); //Behaviour.Add(traits); Behaviour.Add(traits); ////selects the corresponding Behaviour switch (traits[1]) { case "Friendly": Friendlies.Add(next_ID); break; case "Hostile": Hostiles.Add(next_ID); break; case "Neutral": Neutrals.Add(next_ID); break; default: Console.WriteLine("Error, assuming Neutral"); Neutrals.Add(next_ID); break; } switch (traits[2]) { case "Melee": AttackDamage.Add(stats[0] + stats[1]); break; case "Ranged": AttackDamage.Add(stats[1] + stats[2]); break; } next_ID++; }
public static Friendly CreateFriendly(Friendlies friendlyType) { string projectPath = AppDomain.CurrentDomain.BaseDirectory; string path = projectPath + @"\JSON\" + friendlyType + ".json"; StreamReader reader = new StreamReader(path); string jsonData = reader.ReadToEnd(); reader.Close(); Friendly loadedFriendly = JsonConvert.DeserializeObject <Friendly> (jsonData); return(loadedFriendly); }
//Kills an Entity, moving it to the Dead list and removing from it's Alignment list public void KillEntity(int in_ID) { int index = ID.IndexOf(in_ID); switch (Behaviour[index][1]) { case "Friendly": Friendlies.RemoveAt(Friendlies.IndexOf(in_ID)); break; case "Hostile": Hostiles.RemoveAt(Hostiles.IndexOf(in_ID)); break; case "Neutral": Neutrals.RemoveAt(Neutrals.IndexOf(in_ID)); break; } Alive.Remove(in_ID); Dead.Add(in_ID); }
public ContainerPage() { Grid.VisibleColumns.Add(new ColumnViewModel(nameof(CloudBlob.Name).ToConsoleString(Theme.DefaultTheme.H1Color))); Grid.VisibleColumns.Add(new ColumnViewModel(SizeColumn.ToConsoleString(Theme.DefaultTheme.H1Color))); Grid.NoDataMessage = "No blobs"; uploadButton = CommandBar.Add(new Button() { Text = "Upload blob", Shortcut = new KeyboardShortcut(ConsoleKey.U, ConsoleModifiers.Alt) }); deleteButton = CommandBar.Add(new Button() { Text = "Delete blob", CanFocus = false, Shortcut = new KeyboardShortcut(ConsoleKey.Delete, null) }); openButton = CommandBar.Add(new Button() { Text = "Open blob", CanFocus = false, Shortcut = new KeyboardShortcut(ConsoleKey.O, ConsoleModifiers.Alt) }); uploadButton.Activated.SubscribeForLifetime(UploadBlob, LifetimeManager); deleteButton.Activated.SubscribeForLifetime(DeleteSelectedBlob, LifetimeManager); openButton.Activated.SubscribeForLifetime(OpenSelectedBlob, LifetimeManager); Grid.PropertyResolver = (o, prop) => { if (prop == nameof(CloudBlob.Name)) { return((o as CloudBlob).Name); } else if (prop == SizeColumn) { return(Friendlies.ToFriendlyFileSize((o as CloudBlockBlob).Properties.Length)); } else { throw new NotSupportedException("Property not supported: " + prop); } }; CommandBar.Add(new NotificationButton(ProgressOperationManager)); Grid.SubscribeForLifetime(nameof(Grid.SelectedItem), SelectedItemChanged, this.LifetimeManager); }
public override void Update(GameTime gametime, Friendlies.ScavengerManager scavengerManager) { counter++; // creates a number between 1 and 12 if (inSky) { if (isHitInParachute || !Alive) { Position.Y += speed * fallingSpeedMultiplier; } bool hitground = false; if (isHitInParachute || !Alive) { if (wave.layout.isOnGround(Position, Width, Height)) { base.Update(gametime, scavengerManager); inSky = false; hitground = true; } } else { if (wave.layout.isOnGround(new Vector2(Position.X, Position.Y + parachuteOffset), Width, Height)) { if (Alive){ Position.Y += parachuteOffset; } base.Update(gametime, scavengerManager); inSky = false; hitground = true; } } if (hitground || Alive) { if (counter % 30 == 0) { windSpeed = rnd.Next(-1, 1); if (windSpeed == 0) windSpeed = 1; lastWindSpeed = windSpeed; } if (Alive) Position.X += lastWindSpeed; Position.Y += speed; } } else { base.Update(gametime, scavengerManager); } }
internal ParsedEvtcLog(int evtcVersion, FightData fightData, AgentData agentData, SkillData skillData, List <CombatItem> combatItems, List <Player> playerList, IReadOnlyDictionary <uint, AbstractExtensionHandler> extensions, long evtcLogDuration, EvtcParserSettings parserSettings, ParserController operation) { FightData = fightData; AgentData = agentData; SkillData = skillData; PlayerList = playerList; PlayerAgents = new HashSet <AgentItem>(PlayerList.Select(x => x.AgentItem)); ParserSettings = parserSettings; _operation = operation; if (parserSettings.AnonymousPlayer) { operation.UpdateProgressWithCancellationCheck("Anonymous players"); for (int i = 0; i < PlayerList.Count; i++) { PlayerList[i].Anonymize(i + 1); } IReadOnlyList <AgentItem> allPlayerAgents = agentData.GetAgentByType(AgentItem.AgentType.Player); int playerOffset = PlayerList.Count; foreach (AgentItem playerAgent in allPlayerAgents) { if (!PlayerAgents.Contains(playerAgent)) { string character = "Player " + playerOffset; string account = "Account " + (playerOffset++); playerAgent.OverrideName(character + "\0:" + account + "\01"); } } } // _operation.UpdateProgressWithCancellationCheck("Creating GW2EI Combat Events"); CombatData = new CombatData(combatItems, FightData, AgentData, SkillData, PlayerList, operation, extensions, evtcVersion); if (parserSettings.AnonymousPlayer) { operation.UpdateProgressWithCancellationCheck("Anonymous guilds"); IReadOnlyList <AgentItem> allPlayerAgents = agentData.GetAgentByType(AgentItem.AgentType.Player); foreach (AgentItem playerAgent in allPlayerAgents) { foreach (GuildEvent guildEvent in CombatData.GetGuildEvents(playerAgent)) { guildEvent.Anonymize(); } } } // operation.UpdateProgressWithCancellationCheck("Checking CM"); FightData.SetEncounterMode(CombatData, AgentData); operation.UpdateProgressWithCancellationCheck("Setting Fight Name"); FightData.SetFightName(CombatData, AgentData); // var friendlies = new List <AbstractSingleActor>(); friendlies.AddRange(PlayerList); friendlies.AddRange(fightData.Logic.NonPlayerFriendlies); Friendlies = friendlies; FriendliesListBySpec = friendlies.GroupBy(x => x.Spec).ToDictionary(x => x.Key, x => x.ToList()); FriendlyAgents = new HashSet <AgentItem>(Friendlies.Select(x => x.AgentItem)); // _operation.UpdateProgressWithCancellationCheck("Checking Success"); FightData.Logic.CheckSuccess(CombatData, AgentData, FightData, PlayerAgents); if (FightData.FightDuration <= ParserSettings.TooShortLimit) { throw new TooShortException(FightData.FightDuration, ParserSettings.TooShortLimit); } if (ParserSettings.SkipFailedTries && !FightData.Success) { throw new SkipException(); } _operation.UpdateProgressWithCancellationCheck("Creating GW2EI Log Meta Data"); LogData = new LogData(evtcVersion, CombatData, evtcLogDuration, playerList, extensions, operation); // _operation.UpdateProgressWithCancellationCheck("Creating Buff Container"); Buffs = new BuffsContainer(LogData.GW2Build, CombatData, operation); _operation.UpdateProgressWithCancellationCheck("Creating Damage Modifier Container"); DamageModifiers = new DamageModifiersContainer(LogData.GW2Build, fightData.Logic.Mode, parserSettings); _operation.UpdateProgressWithCancellationCheck("Creating Mechanic Data"); MechanicData = FightData.Logic.GetMechanicData(); _operation.UpdateProgressWithCancellationCheck("Creating General Statistics Container"); StatisticsHelper = new StatisticsHelper(CombatData, PlayerList, Buffs); }