Esempio n. 1
0
        public Player()
        {
            stClass = StatsFactory.GetRandom();
            Name = "Plyr " + stClass.ToString();
            Image = "41x24";
            Stats = new EntityStatsContainer(stClass);
            Stats.Level = 4;
            Stats.updateAttributes();
            Stats.FullHeal();

            Stats.SkillsList.AddRange(SkillSetFactory.GetSkillsFor(StatClass.Default, 0));
            Stats.SkillsList.AddRange(SkillSetFactory.GetSkillsFor(stClass, -1));
            Stats.SkillsList = Stats.SkillsList.Intersect(Stats.SkillsList).ToList();

            MyParty = new Party();
            MyParty.Front = this; //Player starts in front of party
        }
Esempio n. 2
0
        public EnemyPrefab(int level)
        {
            stClass = StatsFactory.GetRandom();

            Name = "Mns " + stClass.ToString(); //TODO: monster naming
            Image = "15x5"; //TODO: monster sprites
            Stats = new EntityStatsContainer(stClass);
            Stats.Level = 3;
            Stats.updateAttributes();
            Stats.FullHeal();

            OverworldAI = new DefaultOverworldAI();
            CombatAI = new DefaultCombatAI();

            MyParty = new Party();
            MyParty.Front = this;

            Stats.SkillsList.AddRange(SkillSetFactory.GetSkillsFor(StatClass.Default, 1));
            Stats.SkillsList.AddRange(SkillSetFactory.GetSkillsFor(stClass, -1));
            Stats.SkillsList = Stats.SkillsList.Intersect(Stats.SkillsList).ToList();

            canLink = true;
        }
Esempio n. 3
0
        internal void TryCombat(Party party, MapMovement direct)
        {
            var combat = Rock.Instance.GetService<CombatOverwatchService>() as CombatOverwatchService;
            Party with;
            WorldEntity ent = party.First();

            //TODO: fix, make code safe for map bounds, do a thingy with get x/y co-ords and reuse and shit
            switch (direct)
            {
                case MapMovement.Up:
                    with = _worldLocations["0x0"][ent.MyParty.X, ent.MyParty.Y - 1].Entity;
                    if (with != null)
                    {
                        if (ent is Player)
                        {
                            combat.Start(party, with, true, false);
                        }
                        else
                        {
                            combat.Start(with, party, false, true);
                        }
                    }
                    break;
                case MapMovement.Down:
                    with = _worldLocations["0x0"][ent.MyParty.X, ent.MyParty.Y + 1].Entity;
                    if (with != null)
                    {
                        if (ent is Player)
                        {
                            combat.Start(party, with, true, false);
                        }
                        else
                        {
                            combat.Start(with, party, false, true);
                        }
                    }
                    break;
                case MapMovement.Left:
                    with = _worldLocations["0x0"][ent.MyParty.X - 1, ent.MyParty.Y].Entity;
                    if (with != null)
                    {
                        if (ent is Player)
                        {
                            combat.Start(party, with, true, false);
                        }
                        else
                        {
                            combat.Start(with, party, false, true);
                        }
                    }
                    break;
                case MapMovement.Right:
                    with = _worldLocations["0x0"][ent.MyParty.X + 1, ent.MyParty.Y].Entity;
                    if (with != null)
                    {
                        if (ent is Player)
                        {
                            combat.Start(party, with, true, false);
                        }
                        else
                        {
                            combat.Start(with, party, false, true);
                        }
                    }
                    break;
            }
        }