changeset 176:32ef26f410b8

'nother mission
author Neil Muller <drnlmuller@gmail.com>
date Sat, 12 May 2012 10:29:36 +0200
parents efe82cf956fc
children 4bbd4a1879f8
files gamelib/missions.py
diffstat 1 files changed, 54 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/missions.py	Sat May 12 10:11:36 2012 +0200
+++ b/gamelib/missions.py	Sat May 12 10:29:36 2012 +0200
@@ -476,14 +476,13 @@
         " at the science building with your bare hands. He doesn't say"
         " anything, but you can already hear the gossip.")
 
-    GENERIC_FAILURE = (
-        "Well, that didn't work. Maybe a better equipment selection is in"
-        " order.")
-
     def attempt_no_equipment(self, state):
         self.fail(self.NO_EQUIP_FAILURE, rep=-5)
 
     def attempt_with(self, categorised, state):
+
+        self.use_equipment(categorised)
+
         if cat.DOOM in categorised:
             self.data['completed'] = True
             self.succeed(
@@ -492,21 +491,65 @@
                 rep=randint(10, 15))
 
         if cat.BEAST in categorised:
-            if any(cat.AQUATIC not in x.CATEGORIES for x in
+            if all(cat.AQUATIC not in x.CATEGORIES for x in
                     categorised[cat.BEAST]):
+                self.fail(
+                    "While the beast is terrifying, the effect is"
+                    " unfortuantely significantly lessened the need for a "
+                    " large water tank, and the it's inability to move "
+                    " independantly. Prehaps you need to rethink your plan?")
+            else:
                 self.data['completed'] = True
                 self.succeed(
                     "Your monstrous creation rampages through campus in a"
                     " most statisfying way. They will not forgot this.",
                     rep=randint(5, 12))
-            else:
-                self.fail(
-                    "While the beast is terrifying, the effect is"
-                    " unfortuantely significantly lessened the need for a "
-                    " large water tank, and the it's inability to move "
-                    " independantly. Prehaps you need to rethink your plan?")
 
         if cat.HAND_WEAPON in categorised:
             self.fail(
                 "Mere crude force is not the answer. You need some more"
                 " fitting demonstration of your power.")
+
+
+class SubvertNews(Mission):
+    NAME = "Subvert the news network"
+    SHORT_DESCRIPTION = "Stop the lies!"
+    LONG_DESCRIPTION = (
+        "Worringly, people appear to be easily duped by the lies broadcast"
+        " about you. Time to fight fire with fire!")
+
+    MINIMUM_REPUTATION = 15
+    MINIMUM_MILESTONE = "neighbourhood"
+
+    NO_EQUIP_FAILURE = (
+        "You fail to even get into the building. Perhaps you need to"
+        " rethink your approach")
+
+    def attempt_with(self, categorised, state):
+
+        self.use_equipment(categorised)
+
+        if cat.MIND_CONTROL in categorised:
+            self.succeed(
+                "With the proper equipment, it's a simple matter to"
+                " convince people of the correctness of your point"
+                " of view. If only everything were so simple",
+                rep=randint(5, 15))
+
+        if cat.AU in categorised:
+            self.succeed(
+                "Your AI has complete control of the broadcasters computer"
+                " system. After all, it's not censorship if you're stopping"
+                " them broadcasting blatant lies, now is it?",
+                rep=randint(5, 10))
+
+        if any(c in categorised for c in (cat.VEHICLE, cat.DOOM, cat.BEAST)):
+            self.succeed(
+                "Cowering in fear, the broadcaster agrees to change the"
+                " tone of their stories.", rep=randint(2, 5))
+
+        if cat.HAND_WEAPONS in categorised:
+            self.fail(
+                "The news station's security is surprisingly well prepared."
+                " Prehaps you should rethink your approach?",
+                rep=-randint(5, 10))