Example #1
0
 public KillObjective(int amount, Type[] types, TextDefinition name, QuestArea area)
 {
     m_DesiredAmount = amount;
     m_AcceptedTypes = types;
     m_Name          = name;
     m_Area          = area;
 }
Example #2
0
        public void AddFoeStage(FoeCard foe, List <WeaponCard> weapons = null)
        {
            if (this.stages.Count >= this.numStages)
            {
                throw new Exception("Quest stage limit exceeded");
            }

            QuestArea area = new QuestArea(foe);

            this.sponsor.Hand.Transfer(area, foe);
            if (weapons != null)
            {
                foreach (WeaponCard weapon in weapons)
                {
                    this.sponsor.Hand.Transfer(area, weapon);
                }
            }

            this.stages.Add(area);

            string stageString = foe.ToString();

            if (weapons != null && weapons.Count > 0)
            {
                stageString += " with weapons " + Utils.Stringify.CommaList(weapons);
            }
            this.match.Log(this.sponsor.Username + " adding " + area.BattlePoints() + "BP stage " + stageString);
        }
Example #3
0
		public KillObjective( int amount, Type[] types, TextDefinition name, QuestArea area )
		{
			m_DesiredAmount = amount;
			m_AcceptedTypes = types;
			m_Name = name;
			m_Area = area;
		}
Example #4
0
        public void SetupNextStage()
        {
            if (this.sponsor.Behaviour is HumanPlayer)
            {
                this.stageBuilder = new QuestArea();
                this.match.Controller.RequestStage(this.sponsor);
            }
            else if (this.sponsor.Behaviour != null)
            {
                // Player behaviour functions for individual stage setup.
                List <AdventureCard>[] stages = this.sponsor.Behaviour.SetupQuest(this, this.sponsor.Hand);
                foreach (List <AdventureCard> stage in stages)
                {
                    if (stage.Count == 1 && stage[0] is TestCard)
                    {
                        this.AddTestStage((TestCard)stage[0]);
                    }
                    else
                    {
                        FoeCard           foe     = (FoeCard)stage.Find(x => x is FoeCard);
                        List <WeaponCard> weapons = stage.FindAll(x => x is WeaponCard).Cast <WeaponCard>().ToList();
                        this.AddFoeStage(foe, weapons);
                    }
                }

                this.StageResponse();
            }
        }
Example #5
0
 public KillObjective(
     int amount = 0, Type[] types = null, TextDefinition name = null, QuestArea area = null)
 {
     DesiredAmount = amount;
     AcceptedTypes = types;
     Name          = name;
     Area          = area;
 }
Example #6
0
 public void AddStage(QuestArea area)
 {
     if (this.stages.Count >= this.numStages)
     {
         throw new Exception("Quest stage limit exceeded");
     }
     this.stages.Add(area);
     this.match.Log(this.sponsor.Username + " adding stage with " + Utils.Stringify.CommaList(area.Cards));
 }
Example #7
0
        public void AddTestStage(TestCard test)
        {
            if (this.stages.Count >= this.numStages)
            {
                throw new Exception("Quest stage limit exceeded");
            }

            QuestArea area = new QuestArea(test);

            this.sponsor.Hand.Transfer(area, test);
            this.stages.Add(area);
            this.match.Log(this.sponsor.Username + " adding stage " + test.ToString() + " to " + this.name);
        }
Example #8
0
        public ConvinceMe()
        {
            Activated         = true;
            Title             = 1074629; // Convince Me
            Description       = 1074630; // I'm not signing any forms until the situation here is under control.  So, you can either help out or you can forget getting your tuition refund.  Which will it be?  Help control the shambling dead?
            RefusalMessage    = 1074631; // No signature for you.
            InProgressMessage = 1074632; // No signature for you until you kill off some of the shambling dead out there and destroy that blasted horse.
            CompletionMessage = 1074633; // Pulled it off huh?  Well then you've earned this signature!
            CompletionNotice  = CompletionNoticeShortReturn;

            QuestArea bedlam = new QuestArea(1074835, "Bedlam");               // Bedlam

            Objectives.Add(new KillObjective(1, new Type[] { typeof(RedDeath) }, "Red Death", bedlam));
            Objectives.Add(new KillObjective(10, new Type[] { typeof(GoreFiend) }, "gore fiends", bedlam));
            Objectives.Add(new KillObjective(8, new Type[] { typeof(RottingCorpse) }, "rotting corpses", bedlam));

            Rewards.Add(new DummyReward(1074634));                 // Tuition Reimbursement
        }
Example #9
0
		public ConvinceMe()
		{
			Activated = true;
			Title = 1074629; // Convince Me
			Description = 1074630; // I'm not signing any forms until the situation here is under control.  So, you can either help out or you can forget getting your tuition refund.  Which will it be?  Help control the shambling dead?
			RefusalMessage = 1074631; // No signature for you.
			InProgressMessage = 1074632; // No signature for you until you kill off some of the shambling dead out there and destroy that blasted horse.
			CompletionMessage = 1074633; // Pulled it off huh?  Well then you've earned this signature!
			CompletionNotice = CompletionNoticeShortReturn;

			QuestArea bedlam = new QuestArea( 1074835, "Bedlam" ); // Bedlam

			Objectives.Add( new KillObjective( 1, new Type[] { typeof( RedDeath ) }, "Red Death", bedlam ) );
			Objectives.Add( new KillObjective( 10, new Type[] { typeof( GoreFiend ) }, "gore fiends", bedlam ) );
			Objectives.Add( new KillObjective( 8, new Type[] { typeof( RottingCorpse ) }, "rotting corpses", bedlam ) );

			Rewards.Add( new DummyReward( 1074634 ) ); // Tuition Reimbursement
		}
Example #10
0
 public EscortObjective(QuestArea destination)
 {
     m_Destination = destination;
 }
Example #11
0
 public TimedKillObjective(TimeSpan duration, int amount, Type[] types, TextDefinition name, QuestArea area = null)
     : base(amount, types, name, area) =>
Example #12
0
		public TimedKillObjective( TimeSpan duration, int amount, Type[] types, TextDefinition name, QuestArea area )
			: base( amount, types, name, area )
		{
			m_Duration = duration;
		}
Example #13
0
 public EscortObjective(QuestArea destination = null) => Destination = destination;
Example #14
0
		public EscortObjective( QuestArea destination )
		{
			m_Destination = destination;
		}