Exemplo n.º 1
0
	public void CompleteObjective(Objectives type, string oName){
		Objective tmp;
		if (olist.TryGetValue (type, out tmp)) {
			tmp.complete = true;
			tmp.objectName = oName;
			olist.Remove (type);
			olist.Add (type, tmp);
			UpdateObjectives ();
		}
	}
Exemplo n.º 2
0
        public Aemaeth2()
        {
            Activated         = true;
            OneTimeOnly       = true;
            Title             = 1075327; // Aemaeth
            Description       = 1075328; // You tell me it is time to leave this flesh. I did not understand until now. I thought: I can see my wife and my daughter, I can speak. Is this not life? But now, as I regard my reflection, I see what I have become. This only a mockery of life. Thank you for having the courage to show me the truth. For the love I bear my wife and daughter, I know now that I must pass beyond the veil. Will you return this basin to Aurelia? She will know by this that I am at rest.
            RefusalMessage    = 1075330; // You wont take this back to my daughter? Please, I cannot leave until she knows I am at peace.
            InProgressMessage = 1075331; // My daughter will be at my home, on the east side of the city.
            CompletionMessage = 1075332; // Thank goodness! Now we can honor my father for the great man he was while he lived, rather than the horror he became.
            CompletionNotice  = CompletionNoticeShort;

            Objectives.Add(new DeliverObjective(typeof(BasinOfCrystalClearWater), 1, "Basin of Crystal Clear Water", typeof(Aurelia)));

            Rewards.Add(new ItemReward(1075304, typeof(MirrorOfPurification)));                   // Mirror of Purification
        }
Exemplo n.º 3
0
        public StirringTheNest()
        {
            Activated         = true;
            Title             = 1073087; // Stirring the Nest
            Description       = 1073577; // Were you the sort of child that enjoyed knocking over anthills? Well, perhaps you'd like to try something a little bigger? There's a Solen nest nearby and I bet if you killed a queen or two, it would be quite the sight to behold.  I'd even pay to see that - what do you say?
            RefusalMessage    = 1073580; // I hope you'll reconsider. Until then, farwell.
            InProgressMessage = 1073597; // Dead Solen Queens isn't too much to ask, is it?

            ObjectiveType = ObjectiveType.Any;

            Objectives.Add(new KillObjective(3, new Type[] { typeof(RedSolenQueen) }, "red solen queens"));
            Objectives.Add(new KillObjective(3, new Type[] { typeof(BlackSolenQueen) }, "black solen queens"));

            Rewards.Add(ItemReward.BagOfTreasure);
        }
Exemplo n.º 4
0
        public SplitEnds()
        {
            Activated       = true;
            HasRestartDelay = true;
            Title           = 1075506;                                        // Split Ends
            Description     =
                1075507;                                                      // *sighs* I think bowcrafting is a might beyond my talents. Say there, you look a bit more confident with tools. Can I persuade thee to make a few arrows? You could have my satchel in return... 'tis useless to me! You'll need a fletching kit to start, some feathers, and a few arrow shafts. Just use the fletching kit while you have the other things, and I'm sure you'll figure out the rest.
            RefusalMessage    = 1075508;                                      // Oh. Well. I'll just keep trying alone, I suppose...
            InProgressMessage = 1072271;                                      // You're not quite done yet.  Get back to work!
            CompletionMessage = 1072272;                                      // Thanks for helping me out.  Here's the reward I promised you.

            Objectives.Add(new CollectObjective(20, typeof(Arrow), 1023902)); // arrow

            Rewards.Add(new ItemReward(1074282, typeof(AndricSatchel)));      // Craftsmans's Satchel
        }
Exemplo n.º 5
0
        public GuileIrkAndSpite()
        {
            Activated         = true;
            Title             = 1074739; // Guile, Irk and Spite
            Description       = 1074740; // You know them, don't you.  The three?  They look like you, you'll see. They looked like me, I remember, they looked like, well, you'll see.  The three.  They'll drive you mad too, if you let them.  They are trouble, and they need to be slain.  Seek them out.
            RefusalMessage    = 1074745; // You just don't understand the gravity of the situation.  If you did, you'd agree to my task.
            InProgressMessage = 1074746; // Perhaps I was unclear.  You'll know them when you see them, because you'll see you, and you, and you.  Hurry now.
            CompletionMessage = 1074747; // Are you one of THEM?  Ahhhh!  Oh, wait, if you were them, then you'd be me.  So you're -- you.  Good job!

            Objectives.Add(new KillObjective(1, new Type[] { typeof(Guile) }, "Guile"));
            Objectives.Add(new KillObjective(1, new Type[] { typeof(Irk) }, "Irk"));
            Objectives.Add(new KillObjective(1, new Type[] { typeof(Spite) }, "Spite"));

            Rewards.Add(ItemReward.Strongbox);
        }
Exemplo n.º 6
0
        public ComfortableSeating()
        {
            Activated       = true;
            HasRestartDelay = true;
            Title           = 1075517;   // Comfortable Seating
            Description     =
                1075518;                 // Hail friend, hast thou a moment? A mishap with a saw hath left me in a sorry state, for it shall be a while before I canst return to carpentry. In the meantime, I need a comfortable chair that I may rest. Could thou craft a straw chair?  Only a tool, such as a dovetail saw, a few boards, and some skill as a carpenter is needed. Remember, this is a piece of furniture, so please pay attention to detail.
            RefusalMessage    = 1072687; // I quite understand your reluctance.  If you reconsider, I'll be here.
            InProgressMessage = 1075509; // Is all going well? I look forward to the simple comforts in my very own home.
            CompletionMessage = 1074720; // This is perfect!

            Objectives.Add(new CollectObjective(1, typeof(BambooChair), "straw chair"));

            Rewards.Add(new ItemReward(1074282, typeof(LowelSatchel))); // Craftsmans's Satchel
        }
Exemplo n.º 7
0
        public AClockworkPuzzle()
        {
            Activated       = true;
            HasRestartDelay = true;
            Title           = 1075535;                                            // A clockwork puzzle
            Description     =
                1075534;                                                          // 'Tis a riddle, you see! "What kind of clock is only right twice per day? A broken one!" *laughs heartily* Ah, yes *wipes eye*, that's one of my favorites! Ah... to business. Could you fashion me some clock parts? I wish my own clocks to be right all the day long! You'll need some tinker's tools and some iron ingots, I think, but from there it should be just a matter of working the metal.
            RefusalMessage    = 1072981;                                          // Or perhaps you'd rather not.
            InProgressMessage = 1072271;                                          // You're not quite done yet.  Get back to work!
            CompletionMessage = 1075536;                                          // Wonderful! Tick tock, tick tock, soon all shall be well with grandfather's clock!

            Objectives.Add(new CollectObjective(5, typeof(ClockParts), 1024175)); // clock parts

            Rewards.Add(new ItemReward(1074282, typeof(NibbetSatchel)));          // Craftsmans's Satchel
        }
Exemplo n.º 8
0
        public Momento()
        {
            Activated   = true;
            Title       = 1074750;       // Momento!
            Description =
                1074751;                 // I was going to march right out there and get it myself, but no ... Master Gnosos won't let me.  But you see, that bridle means so much to me.  A momento of happier, less-dead ... well undead horseback riding.  Could you fetch it for me?  I think my horse, formerly known as 'Resolve', may still be wearing it.
            RefusalMessage    = 1074752; // Hrmph.
            InProgressMessage =
                1074753;                 // The bridle would be hard to miss on him now ... since he's skeletal.  Please do what you need to do to retrieve it for me.
            CompletionMessage = 1074754; // I'd know that jingling sound anywhere!  You have recovered my bridle.  Thank you.

            Objectives.Add(new CollectObjective(1, typeof(ResolvesBridle), "Resolve's Bridle"));

            Rewards.Add(ItemReward.LargeBagOfTreasure);
        }
Exemplo n.º 9
0
        public TheWayOfTheSamurai()
        {
            Activated         = true;
            OneTimeOnly       = true;
            Title             = 1078007; // The Way of the Samurai
            Description       = 1078010; // Head East out of town and go to Old Haven. use the Confidence defensive stance and attempt to honorably execute monsters there until you have raised your Bushido skill to 50.<br><center>------</center><br>Greetings. I see you wish to learn the Way of the Samurai. Wielding a blade is easy. Anyone can grasp a sword's hilt. Learning how to fight properly and skillfully is to become an Armsman. Learning how to master weapons, and even more importantly when not to use them, is the Way of the Warrior. The Way of the Samurai. The Code of the Bushido. That is why you are here.<br><br>Adventure East to Old Haven. Use the Confidence defensive stance and attempt to honorably execute the undead that inhabit there. You will need a book of Bushido to perform these abilities. If you do not possess a book of Bushido, you can purchase one from me. <br><br>If you fail to honorably execute the undead, your defenses will be greatly weakened: Resistances will suffer and Resisting Spells will suffer. A successful parry instantly ends the weakness. If you succeed, however, you will be infused with strength and healing. Your swing speed will also be boosted for a short duration. With practice, you will learn how to master your Bushido abilities.<br><br>Return to me once you feel that you have become an Apprentice Samurai.
            RefusalMessage    = 1078011; // Good journey to you. Return to me if you wish to live the life of a Samurai.
            InProgressMessage = 1078012; // You are not ready to become an Apprentice Samurai. There are still more undead to lay to rest. Return to me once you have done so.
            CompletionMessage = 1078014; // You have proven yourself young one. You will continue to improve as your skills are honed with age. You are an honorable warrior, worthy of the rank of Apprentice Samurai.  Please accept this no-dachi as a gift. It is called "The Dragon's Tail". Upon a successful strike in combat, there is a chance this mighty weapon will replenish your stamina equal to the damage of your attack. I hope "The Dragon's Tail" serves you well. You have earned it. Farewell for now.
            CompletionNotice  = 1078013; // You have achieved the rank of Apprentice Samurai. Return to Hamato in New Haven to report your progress.

            Objectives.Add(new GainSkillObjective(SkillName.Bushido, 500, true, true));

            Rewards.Add(new ItemReward(1078015, typeof(TheDragonsTail))); // The Dragon's Tail
        }
Exemplo n.º 10
0
        public AStitchInTime()
        {
            Activated         = true;
            HasRestartDelay   = true;
            Title             = 1075523;                                          // A Stitch in Time
            Description       = 1075522;                                          // Oh how I wish I had a fancy dress like the noble ladies of Castle British! I don't have much... but I have a few trinkets I might trade for it. It would mean the world to me to go to a fancy ball and dance the night away. Oh, and I could tell you how to make one! You just need to use your sewing kit on enough cut cloth, that's all.
            RefusalMessage    = 1075526;                                          // Won't you reconsider? It'd mean the world to me, it would!
            InProgressMessage = 1075527;                                          // Hello again! Do you need anything? You may want to visit the tailor's shop for cloth and a sewing kit, if you don't already have them.
            CompletionMessage = 1075528;                                          // It's gorgeous! I only have a few things to give you in return, but I can't thank you enough! Maybe I'll even catch Uzeraan's eye at the, er, *blushes* I mean, I can't wait to wear it to the next town dance!

            Objectives.Add(new CollectObjective(1, typeof(FancyDress), 1027935)); // fancy dress

            Rewards.Add(new ItemReward(1075524, typeof(AnOldRing)));              // an old ring
            Rewards.Add(new ItemReward(1075525, typeof(AnOldNecklace)));          // an old necklace
        }
Exemplo n.º 11
0
        public ChannelingTheSupernatural()
        {
            Activated         = true;
            OneTimeOnly       = true;
            Title             = 1078044; // Channeling the Supernatural
            Description       = 1078047; // Head East out of town and go to Old Haven. Use Spirit Speak and channel energy from either yourself or nearby corpses there. You can also cast Necromancy spells as well to raise Spirit Speak. Do these activities until you have raised your Spirit Speak skill to 50.<br><center>------</center><br>How do you do? Channeling the supernatural through Spirit Speak allows you heal your wounds. Such channeling expends your mana, so be mindful of this. Spirit Speak enhances the potency of your Necromancy spells. The channeling powers of a Medium are quite useful when practicing the dark magic of Necromancy.<br><br>It is best to practice Spirit Speak where there are a lot of corpses. Head East out of town and go to Old Haven. Undead currently reside there. Use Spirit Speak and channel energy from either yourself or nearby corpses. You can also cast Necromancy spells as well to raise Spirit Speak.<br><br>Come back to me once you feel that you are worthy of the rank of Apprentice Medium and I will reward you with something useful.
            RefusalMessage    = 1078048; // Channeling the supernatural isn't for everyone. It is a dark art. See me if you ever wish to pursue the life of a Medium.
            InProgressMessage = 1078049; // Back so soon? You have not achieved the rank of Apprentice Medium. Come back to me once you feel that you are worthy of the rank of Apprentice Medium and I will reward you with something useful.
            CompletionMessage = 1078051; // Well done! Channeling the supernatural is taxing, indeed. As promised, I will reward you with this bag of Necromancer reagents. You will need these if you wish to also pursue the dark magic of Necromancy. Good journey to you.
            CompletionNotice  = 1078050; // You have achieved the rank of Apprentice Medium. Return to Morganna in New Haven to receive your reward.

            Objectives.Add(new GainSkillObjective(SkillName.SpiritSpeak, 500, true, true));

            Rewards.Add(new ItemReward(1078053, typeof(BagOfNecromancerReagents))); // Bag of Necromancer Reagents
        }
Exemplo n.º 12
0
        public TheDeluciansLostMine()
        {
            Activated         = true;
            OneTimeOnly       = true;
            Title             = 1077750; // The Delucian’s Lost Mine
            Description       = 1077753; // Find Jacob's Lost Mine and mine iron ore there, using a pickaxe or shovel. Bring it back to Jacob's forge and smelt the ore into ingots, until you have raised your Mining skill to 50. You may find a packhorse useful for hauling the ore around. The animal trainer in New Haven has packhorses for sale.<br><center>-----</center><br>Howdy! Welcome to my camp. It's not much, I know, but it's all I'll be needin' up here. I don't need them fancy things those townspeople have down there in New Haven. Nope, not one bit. Just me, Bessie, my pick and a thick vein 'o valorite.<br><br>Anyhows, I'm guessin' that you're up here to ask me about minin', aren't ya? Well, don't be expectin' me to tell you where the valorite's at, cause I ain't gonna tell the King of Britannia, much less the likes of you. But I will show ya how to mine and smelt iron, cause there certainly is a 'nough of up in these hills.<br><br>*Jacob looks around, with a perplexed look on his face*<br><br>Problem is, I can't remember where my iron mine's at, so you'll have to find it yourself. Once you're there, have at it with a pickaxe or shovel, then haul it back to camp and I'll show ya how to smelt it. Ya look a bit wimpy, so you might wanna go buy yourself a packhorse in town from the animal trainer to help you haul around all that ore.<br><br>When you're an Apprentice Miner, talk to me and I'll give ya a little somethin' I've got layin' around here... somewhere.
            RefusalMessage    = 1077754; // Couldn’t find my iron mine, could ya? Well, neither can I!<br><br>*Jacob laughs*<br><br>Oh, ya don’t wanna find it? Well, allrighty then, ya might as well head on back down to town then and stop cluttering up my camp. Come back and talk to me if you’re interested in learnin’ ‘bout minin’.
            InProgressMessage = 1077755; // Where ya been off a gallivantin’ all day, pilgrim? You ain’t seen no hard work yet! Get yer arse back out there to my mine and dig up some more iron. Don’t forget to take a pickaxe or shovel, and if you’re so inclined, a packhorse too.
            CompletionMessage = 1077757; // Dang gun it! If that don't beat all! Ya went and did it, didn’t ya? What we got ourselves here is a mighty fine brand spankin’ new Apprentice Miner!<br><br>I can see ya put some meat on them bones too while you were at it!<br><br>Here’s that little somethin’ I told ya I had for ya. It’s a pickaxe with some high falutin’ magic inside that’ll help you find the good stuff when you’re off minin’. It wears out fast, though, so you can only use it a few times a day.<br><br>Welp, I’ve got some smeltin’ to do, so off with ya. Good luck, pilgrim!
            CompletionNotice  = 1077756; // You have achieved the rank of Apprentice Miner. Return to Jacob Waltz in at his camp in the hills above New Haven as soon as you can to claim your reward.

            Objectives.Add(new GainSkillObjective(SkillName.Mining, 500, true, true));

            Rewards.Add(new ItemReward(1077758, typeof(JacobsPickaxe))); // Jacob's Pickaxe
        }
Exemplo n.º 13
0
        public LethalDarts()
        {
            Activated         = true;
            HasRestartDelay   = true;
            Title             = 1073876; // Lethal Darts
            Description       = 1074066; // We elves are no strangers to archery but I would be interested in learning whether there is anything to learn from the human approach. I would gladly trade you something I have if you could teach me of the deadly crossbow bolt.
            RefusalMessage    = 1073921; // I will patiently await your reconsideration.
            InProgressMessage = 1073922; // I will be in your debt if you bring me crossbow bolts.
            CompletionMessage = 1073968; // My thanks for your service. Now, I shall teach you of elven archery.
            CompletionNotice  = CompletionNoticeCraft;

            Objectives.Add(new CollectObjective(10, typeof(Bolt), 1027163)); // crossbow bolt

            Rewards.Add(ItemReward.FletchingSatchel);
        }
Exemplo n.º 14
0
        public SwiftAsAnArrow()
        {
            Activated         = true;
            OneTimeOnly       = true;
            Title             = 1078201; // Swift as an Arrow
            Description       = 1078205; // Head East out of town and go to Old Haven. While wielding your bow or crossbow, battle monster there until you have raised your Archery skill to 50. Well met, friend. Imagine yourself in a distant grove of trees, You raise your bow, take slow, careful aim, and with the twitch of a finger, you impale your prey with a deadly arrow. You look like you would make a excellent archer, but you will need practice. There is no better way to practice Archery than when you life is on the line. I have a challenge for you. Head East out of town and go to Old Haven. While wielding your bow or crossbow, battle the undead that reside there. Make sure you bring a healthy supply of arrows (or bolts if you prefer a crossbow). If you wish to purchase a bow, crossbow, arrows, or bolts, you can purchase them from me or the Archery shop in town. You can also make your own arrows with the Bowcraft/Fletching skill. You will need fletcher's tools, wood to turn into sharft's, and feathers to make arrows or bolts. Come back to me after you have achived the rank of Apprentice Archer, and i will reward you with a fine Archery weapon.
            RefusalMessage    = 1078206; // I understand that Archery may not be for you. Feel free to visit me in the future if you change your mind.
            InProgressMessage = 1078207; // You're doing great as an Archer! however, you need more practice.
            CompletionMessage = 1078209; // Congratulation! I want to reward you for your accomplishment. Take this composite bow. It is called " Heartseeker". With it, you will shoot with swiftness, precision, and power. I hope "Heartseeker" serves you well.
            CompletionNotice  = 1078208; // You have achieved the rank of Apprentice Archer. Return to Robyn in New Haven to claim your reward.

            Objectives.Add(new GainSkillObjective(SkillName.Archery, 500, true, true));

            Rewards.Add(new ItemReward(1078210, typeof(Heartseeker))); // Heartseeker
        }
Exemplo n.º 15
0
        public EmbracingHumanity()
        {
            Activated   = true;
            OneTimeOnly = true;          // OSI has no limit or delay, VERY exploitable
            Title       = 1074349;       // Embracing Humanity
            Description =
                1074357;                 // Well, I don't mind saying it -- I'm flabbergasted!  Absolutely astonished.  I just heard that some elves want to convert themselves to humans through some magical process.  My cousin Nedrick does whatever needs doing.  I guess you could check it out for yourself if you're curious.  Anyway, I wonder if you'll bring my cousin, Drithen, this here treat my wife baked up for him special.
            RefusalMessage    = 1074459; // That's okay, I'll find someone else to make the delivery.
            InProgressMessage = 1074460; // If I knew where my cousin was, I'd make the delivery myself.
            CompletionMessage = 1074461; // Oh, hello there.  What do you have for me?

            Objectives.Add(new DeliverObjective(typeof(SpecialTreatForDrithen), 1, "treat for Drithen", typeof(Drithen)));

            Rewards.Add(ItemReward.BagOfTreasure);
        }
Exemplo n.º 16
0
    void CommandCompleted(Node node)
    {
        NotificationQueue.PushNotification("Vous avez complété une commande !");

        Objectives currentObjectives = Game.Map.cash;
        int        income            = currentObjectives.OrderBaseReward + (currentObjectives.RewardPerPizza * node.pizza.Count);

        currentObjectives.IncomeCash(income);


        for (int i = 0; i < node.pizza.Count; i++)
        {
            Destroy(node.pizza[i].gameObject);
        }
    }
Exemplo n.º 17
0
        public OddsAndEnds()
        {
            Activated   = true;
            Title       = 1074354;       // Odds and Ends
            Description =
                1074677;                 // I've always been fascinated by primitive cultures -- especially the artifacts.  I'm a collector, you see.  I'm working on building my troglodyte display and I'm saddened to say that I'm short on examples of religion and superstition amongst the creatures.  If you come across any primitive fetishes, I'd be happy to trade you something interesting for them.
            RefusalMessage    = 1072270; // Well, okay. But if you decide you are up for it after all, c'mon back and see me.
            InProgressMessage =
                1074678;                 // I don't really want to know where you get the primitive fetishes, as I can't support the destruction of their lifestyle and culture. That would be wrong.
            CompletionMessage = 1074679; // Bravo!  These fetishes are just what I needed.  You've earned this reward.

            Objectives.Add(new CollectObjective(12, typeof(PrimitiveFetish), "Primitive Fetishes"));

            Rewards.Add(ItemReward.BagOfTreasure);
        }
Exemplo n.º 18
0
        public IndustriousAsAnAntLion()
        {
            Activated         = true;
            OneTimeOnly       = true;
            Title             = 1073665; // Industrious as an Ant Lion
            Description       = 1073704; // Ants are industrious and Lions are noble so who'd think an Ant Lion would be such a problem? The Ant Lion's have been causing mindless destruction in these parts. I suppose it's just how ants are. But I need you to help eliminate the infestation. Would you be willing to help for a bit of reward?
            RefusalMessage    = 1073733; // Perhaps you'll change your mind and return at some point.
            InProgressMessage = 1073745; // Please, rid us of the Ant Lion infestation.

            Objectives.Add(new KillObjective(12, new Type[] { typeof(LesserAntLion) }, "lesser ant lions"));

            Rewards.Add(ItemReward.MLQuestCompletionDeed);
            Rewards.Add(ItemReward.MLExperienceCheck1000);
            Rewards.Add(ItemReward.LargeBagOfTreasure);
        }
Exemplo n.º 19
0
        public ARockAndAHardPlace()
        {
            Activated         = true;
            Title             = 1074951; // A Rock and a Hard Place
            Description       = 1074957; // This is some nasty stuff, that's for certain.  I don't even want to think about what sort of blight caused this venomous reaction from that old tree.  Let's get to work … we'll need to try something really hard but still workable as our base material.  Nothing's harder than stone and diamond.  Let's try them first.
            RefusalMessage    = 1074965; // Sure, no problem.  I thought you were interested in figuring this out.
            InProgressMessage = 1074969; // If you're a miner, you should have no trouble getting that stuff.  If not, you can probably buy some samples from a miner?
            CompletionMessage = 1074992; // Have you got the granite and diamonds?  Great, let me see them and we'll see what effect this venom has upon them.

            // Any type of granite works
            Objectives.Add(new CollectObjective(4, typeof(BaseGranite), 1026009)); // rock
            Objectives.Add(new CollectObjective(2, typeof(BlueDiamond), 1032696)); // Blue Diamond

            Rewards.Add(new DummyReward(1074962));                                 // A step closer to entering Blighted Grove.
        }
Exemplo n.º 20
0
        public ReginasThanks()
        {
            Activated         = true;
            OneTimeOnly       = true;
            Title             = 1075398; // Regina’s Thanks
            Description       = 1075399; // What’s that you say? It was a humble beggar that found my ring? Such honesty must be rewarded. Here, take this packet and return it to him, and I will be in your debt.
            RefusalMessage    = 1075401; // Hmph. Very well. What did you say his name was?
            InProgressMessage = 1075402; // Take the packet and return it to the beggar who found my ring.
            CompletionMessage = 1075403; // What? For me? Let me see . . . these sapphire earrings are for you, it says. Oh, she wants to offer me a job! This is the most wonderful thing that ever happened to me!
            CompletionNotice  = CompletionNoticeShort;

            Objectives.Add(new DeliverObjective(typeof(ReginasLetter), 1, "Regina's Letter", typeof(Evan)));

            Rewards.Add(new ItemReward(1075400, typeof(TransparentHeart)));                   // Transparent Heart
        }
Exemplo n.º 21
0
        public Specimens()
        {
            Activated         = true;
            Title             = 1072999; // Specimens
            Description       = 1073032; // I admire them, you know.  The solen have their place -- regimented, organized.  They're fascinating to watch with their constant strife between red and black.  I can't help but want to stir things up from time to time.  And that's where you come in.  Kill either twelve red or twelve black solen workers and let's see what happens next!
            RefusalMessage    = 1072270; // Well, okay. But if you decide you are up for it after all, c'mon back and see me.
            InProgressMessage = 1072271; // You're not quite done yet.  Get back to work!

            ObjectiveType = ObjectiveType.Any;

            Objectives.Add(new KillObjective(12, new Type[] { typeof(RedSolenWorker) }, "red solen workers"));
            Objectives.Add(new KillObjective(12, new Type[] { typeof(BlackSolenWorker) }, "black solen workers"));

            Rewards.Add(ItemReward.BagOfTrinkets);
        }
Exemplo n.º 22
0
        public SubContracting()
        {
            Activated         = true;
            Title             = 1074955;                                                                            // Sub Contracting
            Description       = 1074961;                                                                            // Wonderful!  Now we can both get in there!  Let me show you these instructions for making this machete.  If you're not skilled in smithing, I'm not sure how much sense it will make though.  Listen, if you're heading in there anyway … maybe you'd do me one more favor?  I'm ah ... buried in work out here ... so if you'd go in and get me a few water samples, I'd be obliged.
            RefusalMessage    = 1074967;                                                                            // Oh.  Right, I guess you're really ... ah ... busy too.
            InProgressMessage = 1074973;                                                                            // Once you're inside, look for places where the water has twisted and warped the natural creatures.
            CompletionMessage = 1074996;                                                                            // I hear sloshing ... that must mean you've got my water samples.  Whew, I'm so glad you braved the dangers in there ... I mean, I would have but I'm so busy out here.  Here's your reward!

            Objectives.Add(new CollectObjective(3, typeof(SamplesOfCorruptedWater), "samples of corrupted water")); // On OSI the label is "#1074999"
            // TODO: "Return to" should say "Jamal (near Blighted Grove)"
            // Maybe every quest NPC has directions as a property?

            Rewards.Add(ItemReward.LargeBagOfTreasure);
        }
Exemplo n.º 23
0
        public WisdomOfTheSphynx()
        {
            Activated   = true;
            Title       = 1072784;       // Wisdom of the Sphynx
            Description =
                1072822;                 // I greet thee human and divine my boon thou seek.  Convey hence the object of my riddle and I shall reward thee with thy desire.<br><br>Three lives have I.<br>Gentle enough to soothe the skin,<br>Light enough to caress the sky,<br>Hard enough to crack rocks<br>What am I?
            RefusalMessage    = 1072823; // As thou wish, human.
            InProgressMessage =
                1072824;                 // I give thee a hint then human.  The answer to my riddle must be held carefully or it cannot be contained at all.  Bring this elusive item to me in a suitable container.
            CompletionMessage = 1074176; // Ah, thus it ends.

            Objectives.Add(new InternalObjective());

            Rewards.Add(new DummyReward(1072805)); // The boon of Enigma.
        }
Exemplo n.º 24
0
        public AFathersGratitude()
        {
            Activated         = true;
            OneTimeOnly       = true;
            Title             = 1075343; // A Father’s Gratitude
            Description       = 1075344; // That is simply terrible. First Andros, and now his son. Well, let’s make sure Frederic’s sacrifice wasn’t in vain. Will you take the bandages to his father? You can probably deliver them faster than I can, can’t you?
            RefusalMessage    = 1075346; // Well I’m sorry to hear you say that. Without your help, I don’t know if I can get these to Andros quickly enough to help him.
            InProgressMessage = 1075347; // I don’t know how much longer Andros will survive. You’d better get this to him as quick as you can. Every second counts!
            CompletionMessage = 1075348; // Sorry, I’m not accepting commissions at the moment. What? You have the bandage I need from Leon? Thank you so much! But why didn’t my son bring this to me himself? . . . Oh, no! You can't be serious! *sag* My Freddie, my son! Thank you for carrying out his last wish. Here -- I made this for my son, to give to him when he became a journeyman. I want you to have it.
            CompletionNotice  = CompletionNoticeShort;

            Objectives.Add(new DeliverObjective(typeof(AlchemistsBandage), 1, "Alchemist's Bandage", typeof(Andros)));

            Rewards.Add(new ItemReward(1075345, typeof(AndrosGratitude)));             // Andros’ Gratitude
        }
Exemplo n.º 25
0
        public DefendingTheHerd()
        {
            Activated   = true;
            Title       = 1072785;       // Defending the Herd
            Description =
                1072825;                 // *snort* ... guard-mates ... guard-herd *hoof stomp* ... defend-with-hoof-and-horn ... thirsty-drink.  *proud head-toss*
            RefusalMessage    = 1072826; // *snort*
            InProgressMessage = 1072827; // *impatient hoof stomp* ... thirsty herd ... water scent.
            CompletionNotice  = CompletionNoticeShort;

            Objectives.Add(
                new EscortObjective(new QuestArea(1074779, "Bravehorn's drinking pool"))); // Bravehorn's drinking pool

            Rewards.Add(new DummyReward(1072806));                                         // The boon of Bravehorn.
        }
Exemplo n.º 26
0
        public CaretakerOfTheLand()
        {
            Activated   = true;
            Title       = 1072783;       // Caretaker of the Land
            Description =
                1072812;                 // Hrrrrr.  Hurrrr.  Huuuman.  *creaking branches*  Suuun on baaark, roooooots diiig deeeeeep, wiiind caaaresses leeeaves … Hrrrrr.  Saaap of Sooosaria feeeeeeds us.  Hrrrrr.  Huuuman leeearn.  Caaaretaker of plaaants … teeend … prooove.<br>
            RefusalMessage    = 1072813; // Hrrrrr.  Hrrrrr.  Huuuman.
            InProgressMessage =
                1072814;                 // Hrrrr. Hrrrr.  Roooooots neeeeeed saaap of Sooosaria.  Hrrrrr.  Roooooots tiiingle neeeaaar Yeeew.  Seeeaaarch.  Hrrrr!
            CompletionMessage = 1074175; // Thiiirsty. Hurrr. Hurrr.

            Objectives.Add(new CollectObjective(1, typeof(SapOfSosaria), "sap of sosaria"));

            Rewards.Add(new DummyReward(1072804)); // The boon of Strongroot.
        }
Exemplo n.º 27
0
        public Eureka()
        {
            Activated   = true;
            Title       = 1074954;       // Eureka!
            Description =
                1074960;                 // We're in business!  I've put together the instructions for chopping sort of sword, in the style of one of those new-fangled elven machetes.  Take those back to Jamal for me, if you would.
            RefusalMessage    = 1074966; // Well, okay.  I guess I thought you'd want to see this through.
            InProgressMessage =
                1074972;                 // I'm sure Jamal is eager to get this information.  He's probably still hanging around near that big old blighted tree.
            CompletionMessage = 1074995; // Heya!  You're back.  Was Iosep able to help?  Let me see what he's sent.

            Objectives.Add(new DeliverObjective(typeof(SealedNotesForJamal), 1, "sealed note for Jamal", typeof(Jamal)));

            Rewards.Add(new DummyReward(1074962)); // A step closer to entering Blighted Grove.
        }
Exemplo n.º 28
0
        public AlreadyDead()
        {
            Activated   = true;
            Title       = 1074953;       // Already Dead
            Description =
                1074959;                 // Amazing!  The bark was reduced to ash in seconds.  Whatever this taint is, it plays havok with living things.  And of course, it took the edge off both diamonds and granite even faster.  What we need is something workable but dead; something that can hold an edge without melting.  See what you can come up with, please.
            RefusalMessage    = 1074965; // Sure, no problem.  I thought you were interested in figuring this out.
            InProgressMessage =
                1074971;                 // I'm thinking we need something fairly brittle or it won't hold an edge.  And, it can't be alive, of course.
            CompletionMessage = 1074994; // Great thought!  Bone might just do the trick.

            Objectives.Add(new InternalObjective());

            Rewards.Add(new DummyReward(1074962)); // A step closer to entering Blighted Grove.
        }
Exemplo n.º 29
0
        public VilePoison()
        {
            Activated   = true;
            Title       = 1074950;       // Vile Poison
            Description =
                1074956;                 // Heya!  I'm sure glad to see you.  Listen I'm in a bit of a bind here.  I'm supposed to be gathering poisoned water at the base of that corrupted tree there, but I can't get in under the roots to get a good sample.  The branches and brush are so tainted that they can't be cut, burned or even magically passed.  It's put my work at a real standstill.  If you help me out, I'll help you get in there too.  Whadda ya say?
            RefusalMessage    = 1074964; // Okay.  If you change your mind, I'll probably still be stuck here trying to get in.
            InProgressMessage = 1074968; // My friend, Iosep, is a weaponsmith in Jhelom.  If anyone can help us, he can!
            CompletionMessage =
                1074991;                 // Greetings.  What have you there?  Ah, a sample from a poisonous tree, you say?  My friend Jamal sent you?  Well, let me see that then, and we'll get to work.

            Objectives.Add(new DeliverObjective(typeof(TaintedTreeSample), 1, "tainted tree sample", typeof(Iosep)));

            Rewards.Add(new DummyReward(1074962)); // A step closer to entering Blighted Grove.
        }
Exemplo n.º 30
0
        public TheHumanBlight()
        {
            Activated         = true;
            Title             = 1072757;                                                 // The Human Blight
            Description       = 1072766;                                                 // You have proven your desire to contribute to the community and serve the people.  Now you must demonstrate your willingness to defend Sosaria from the greatest blight that plagues her.  The human vermin that have spread as a disease, despoiling the land are the greatest blight we face.  Kill humans and return to me the proof of your actions. Bring me 30 human ears.
            RefusalMessage    = 1072771;                                                 // You must serve Sosaria with all your heart and strength.  Your unwillingness does not reflect favorably upon you.
            InProgressMessage = 1072778;                                                 // Why do you delay?  The human blight must be averted.
            CompletionMessage = 1074160;                                                 // I will take the ears you have collected now.  Hand them here.

            Objectives.Add(new CollectObjective(30, typeof(SeveredHumanEars), 1032591)); // severed human ears

            Rewards.Add(new ItemReward(1031601, typeof(ArcaneCircleScroll)));            // Arcane Circle
            Rewards.Add(new ItemReward(1031600, typeof(SpellweavingBook)));              // Spellweaving Spellbook
            Rewards.Add(new ItemReward(1031602, typeof(GiftOfRenewalScroll)));           // Gift of Renewal
        }
Exemplo n.º 31
0
        public SuppliesForSanctuary()
        {
            Activated         = true;
            Title             = 1072756;                                          // Supplies for Sanctuary
            Description       = 1072765;                                          // With health and defense assured, we need look to the need of the community for food and drink.  We will feast on fish steaks, sweets, and wine.  You will supply the ingredients, the cooks will prepare the meal.  As a Arcanist relies upon others to build focus and lend their power to her workings, the community needs the effort of all to survive.
            RefusalMessage    = 1072770;                                          // Do not falter now.  You have begun to show promise.
            InProgressMessage = 1072777;                                          // Where are the items you've been tasked to supply for the feast?
            CompletionMessage = 1074158;                                          // Ah good, you're back.  We're eager for the feast.

            Objectives.Add(new CollectObjective(1, typeof(SackFlour), 1024153));  // sack of flour
            Objectives.Add(new CollectObjective(10, typeof(JarHoney), 1022540));  // jar of honey
            Objectives.Add(new CollectObjective(20, typeof(FishSteak), 1022427)); // fish steak

            Rewards.Add(new DummyReward(1074872));                                // The opportunity to learn the ways of the Arcanist.
        }
Exemplo n.º 32
0
    public Scenario(string filename)
    {
        controller = Game_Controller.controller;
        scenario_file = filename;
        //Initialize Lists
        rewards = new List<string>();
        bonus_rewards = new List<string>();
        List<int> unlocks_scenarios = new List<int>();
        List<int> unlocks_scenarios_on_loss = new List<int>();
        List<int> unlocks_scenarios_on_win = new List<int>();
        List<int> unlocks_scenarios_on_bonus = new List<int>();
        //Read in the file
        string[] lines = System.IO.File.ReadAllLines(scenario_file);
        string line = "";
        string[] elements = new string[2];
        //30 is the default grid size;
        int grid_width=30;
        int grid_length=30;
        int[,] tile_sprite_ids = new int[grid_width, grid_length];
        int[,] object_sprite_ids = new int[grid_width, grid_length];
        int[,] character_sprite_ids = new int[grid_width, grid_length];
        //Read through the file line by line, looking for specific headings
        for (int i = 0; i < lines.Length; i++)
        {
            line = lines[i];
            switch (line)
            {
                //ID of the scenario
                case "[ID]":
                    scenario_name = lines[i + 1];
                    i += 2;
                    break;
                //What Sector the scenario can be found in
                case "[Sector]":
                    scenario_sector = lines[i + 1];
                    i += 2;
                    break;
                //Name of the Scenario
                case "[Name]":
                    scenario_name = lines[i + 1];
                    i+=2;
                    break;
                //Description for the Scenario
                case "[Description]":
                    description = lines[i + 1];
                    i += 2;
                    break;
                //Objective for the scenario (see Objectives enum for list of possible objectives.)
                case "[Objective]":
                    foreach (Objectives obj in System.Enum.GetValues(typeof(Objectives)))
                    {
                        if(obj.ToString() == lines[i + 1])
                        {
                            objective = obj;
                        }
                    }
                    i += 2;
                    break;
                //Reward for winning the scenario
                case "[Reward]":
                    for(int j = i+1; j<lines.Length; j++)
                    {
                        if (lines[j] != "")
                        {
                            rewards.Add(lines[j]);
                        }
                        else
                        {
                            i = j;
                            j = lines.Length;
                        }
                    }
                    break;
                //Bonus objective for the scenario
                case "[Bonus Objective]":
                    bonus_objective = lines[i + 1];
                    i += 2;
                    break;
                //Reward for completing the Bonus Objective
                case "[Bonus Reward]":
                    for (int j = i + 1; j < lines.Length; j++)
                    {
                        if (lines[j] != "")
                        {
                            bonus_rewards.Add(lines[j]);
                        }
                        else
                        {
                            i = j;
                            j = lines.Length;
                        }
                    }
                    break;
                //Scenario IDs that will be unlocked regardless of wether or not the Objective is met
                case "[Unlocks]":
                    elements = lines[i + 1].Split(';');
                    int id = scenario_id;
                    foreach (string s in elements)
                    {
                        if (int.TryParse(s, out id))
                        {
                            unlocks_scenarios.Add(id);
                        }
                    }
                    i += 2;
                    break;
                //Scenario IDs that will be unlocked if the Objective is not met
                case "[Unlocks on Loss]":
                    elements = lines[i + 1].Split(';');
                    id = scenario_id;
                    foreach (string s in elements)
                    {
                        if (int.TryParse(s, out id))
                        {
                            unlocks_scenarios_on_loss.Add(id);
                        }
                    }
                    i += 2;
                    break;
                //Scenario IDs that will be unlocked if the Objective is met
                case "[Unlocks on Win]":
                    elements = lines[i + 1].Split(';');
                    id = scenario_id;
                    foreach (string s in elements)
                    {
                        if (int.TryParse(s, out id))
                        {
                            unlocks_scenarios_on_win.Add(id);
                        }
                    }
                    i += 2;
                    break;
                //Scenario IDs that will be unlocked if the Bonus Objective is met
                case "[Unlocks on Bonus]":
                    elements = lines[i + 1].Split(';');
                    id = scenario_id;
                    foreach (string s in elements)
                    {
                        if (int.TryParse(s, out id))
                        {
                            unlocks_scenarios_on_bonus.Add(id);
                        }
                    }
                    i += 2;
                    break;
                //Size of the tile grid map
                case "[Grid Size]":
                    int width = 30;
                    int length = 30;
                    if (int.TryParse(lines[i + 1].Split(';')[0], out width))
                    {
                        grid_width = width;
                    }
                    if (int.TryParse(lines[i + 1].Split(';')[1], out length))
                    {
                        grid_length = length;
                    }
                    i += 2;
                    break;
                case "[Tile Map]":
                    tile_sprite_ids = new int[grid_width, grid_length];
                    for( int k = i+1; k<i+grid_length+1; k++)
                    {
                        string[] entries = lines[k].Split(';');
                        for (int l = 0; l<grid_width; l++)
                        {
                            int sprite;
                            if (int.TryParse(entries[l], out sprite))
                            {
                                tile_sprite_ids[k-i-1, l] = sprite;
                            }
                        }
                    }
                    break;
                case "[Object Map]":
                    object_sprite_ids = new int[grid_width, grid_length];
                    for (int k = i + 1; k < i + grid_length+1; k++)
                    {
                        string[] entries = lines[k].Split(';');
                        for (int l = 0; l < grid_width; l++)
                        {
                            int sprite;
                            if (int.TryParse(entries[l], out sprite))
                            {
                                object_sprite_ids[k-i-1, l] = sprite;
                            }
                        }
                    }
                    break;
                case "[Character Map]":
                    character_sprite_ids = new int[grid_width, grid_length];
                    for (int k = i + 1; k < i + grid_length + 1; k++)
                    {
                        string[] entries = lines[k].Split(';');
                        for (int l = 0; l < grid_width; l++)
                        {
                            int sprite;
                            if (int.TryParse(entries[l], out sprite))
                            {
                                character_sprite_ids[k - i - 1, l] = sprite;
                            }
                        }
                    }
                    break;
                //Default in case none of the above cases are met
                default:
                    break;
            }
            //Resume new scenario creation
            tile_grid = new Tile_Grid(grid_width, grid_length, tile_sprite_ids, object_sprite_ids, character_sprite_ids);
            tile_grid.tile_prefab.GetComponent<SpriteRenderer>().color = new Color(255f, 255f, 255f, 1f);

            curr_round = 0;
            curr_character_num = 0;
            turn_index = 0;
            turn_order = new List<GameObject>();
            reachable_tiles = new List<Transform>();
            reachable_tile_objects = new List<GameObject>();
        }
    }
Exemplo n.º 33
0
	void Start(){
		gameObjectives = new Objectives ();
	}
Exemplo n.º 34
0
    public bool Save(Objectives.Type objective, string objectiveParam)
    {
        if (Name == "")
        {
            return false;
        }
        // Replace all space with underscore as space will give some problems
        Name = Name.Replace(' ', '_');
        string path = MAP_DIRECTORY + Name + MAP_EXTENSION;
        StreamWriter file = new StreamWriter(File.Create(path));

        // Save objective
        file.WriteLine(TILE_OBJECTILE_IDENTIFIER.ToString() + ((int)objective) + ", " + objectiveParam);

        foreach (Row row in map)
        {
            string line = "";
            foreach (MultiLayerTile multiTile in row.column)
            {
                if (multiTile.multiLayerTile.Count > 0)
                {
                    foreach (GameObject goTile in multiTile.multiLayerTile)
                    {
                        Tile tile = goTile.GetComponent<Tile>();
                        line += (int)(tile.Type) + TILE_MULTIPLE_LAYER_SPLIT.ToString();
                    }
                    // Remove the extra multiple layer split
                    line = line.Remove(line.Length - 1);
                }
                else
                {
                    line += (int)Tile.TILE_TYPE.TILE_EMPTY;
                }
                line += TILE_SPLIT.ToString();
            }
            line = line.Remove(line.Length - 1);
            file.WriteLine(line);
        }
        file.Close();
        return true;
    }
Exemplo n.º 35
0
    private void setObjective()
    {
        // Create an Objective based on the type provided by the TileMap
        switch (GameTileMapReference.ObjectiveType)
        {
            case Objectives.Type.KillAll:
                CurrentObjective = gameObject.AddComponent<Kill_Enemy>();
                CurrentObjective.Manager = this;
                break;
            case Objectives.Type.CollectCoins:
                CurrentObjective = gameObject.AddComponent<Collect_Coins>();
                CurrentObjective.Manager = this;
                break;
            case Objectives.Type.NoDamage:
                CurrentObjective = gameObject.AddComponent<No_Dmg_Taken>();
                CurrentObjective.Manager = this;
                break;
            case Objectives.Type.Endless:
                CurrentObjective = gameObject.AddComponent<Endless>();
                Endless mode = CurrentObjective.GetComponent<Endless>();
                mode.RefPlayer1 = PlayerList[0];
                mode.RefPlayer2 = PlayerList[1];
                mode.RefEnemyManager = EnemiesManager;
                mode.RefWaypointManager = GetComponentInChildren<WaypointManager>();
                CurrentObjective.Manager = this;
                break;
            default:
                throw new ArgumentOutOfRangeException();
        }

        // Initialize the Objective with the string provided
        if (CurrentObjective.ParseParamString(GameTileMapReference.ObjectiveParams) == false)
        {
            throw new UnityException("Failed to load Objective parameters!");
        }

        // Tie the Objective with this GameManager
        CurrentObjective.Manager = this;
    }