Exemplo n.º 1
0
        //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++;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        //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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }