Example #1
0
    def _get_generic_offers(self, npc, camp):
        """

        :type camp: gears.GearHeadCampaign
        :type npc: gears.base.Character
        """
        mylist = list()
        if npc.relationship and gears.relationships.RT_LANCEMATE in npc.relationship.tags:
            if camp.can_add_lancemate() and npc not in camp.party:
                # If the NPC has the lancemate tag, they might join the party.
                if npc.relationship.data.get("DZD_LANCEMATE_TIME_OFF",
                                             0) <= camp.day:
                    mylist.append(
                        Offer("[JOIN]",
                              context=ContextTag([context.JOIN]),
                              effect=game.content.plotutility.AutoJoiner(npc)))
                else:
                    # This NPC is taking some time off. Come back tomorrow.
                    mylist.append(
                        Offer("[COMEBACKTOMORROW_JOIN]",
                              context=ContextTag([context.JOIN])))
            elif npc in camp.party and gears.tags.SCENE_PUBLIC in camp.scene.attributes:
                mylist.append(
                    Offer("[LEAVEPARTY]",
                          context=ContextTag([context.LEAVEPARTY]),
                          effect=game.content.plotutility.AutoLeaver(npc)))
            mylist.append(LMSkillsSelfIntro(npc))
        return mylist
Example #2
0
    def NPC_offers(self, camp):
        mylist = list()
        npc = self.elements["NPC"]
        self.hire_cost = get_hire_cost(camp, npc)
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            if camp.can_add_lancemate():
                mylist.append(
                    Offer(
                        "I'll join your lance for a mere ${}. [DOYOUACCEPTMYOFFER]"
                        .format(self.hire_cost),
                        context=ContextTag((context.PROPOSAL, context.JOIN)),
                        data={"subject": "joining my lance"},
                        subject=self,
                        subject_start=True,
                    ))
                mylist.append(
                    Offer("[DENY_JOIN] [GOODBYE]",
                          context=ContextTag((context.DENY, context.JOIN)),
                          subject=self))
                if camp.credits >= self.hire_cost:
                    mylist.append(
                        Offer("[THANKS_FOR_CHOOSING_ME] [LETSGO]",
                              context=ContextTag(
                                  (context.ACCEPT, context.JOIN)),
                              subject=self,
                              effect=self._join_lance))
            mylist.append(
                Offer(
                    "[HELLO] I am a mercenary pilot, looking for my next contract.",
                    context=ContextTag((context.HELLO, ))))
            mylist.append(LMSkillsSelfIntro(npc))

        return mylist
Example #3
0
    def NPC_offers(self, camp):
        mylist = list()
        npc = self.elements["NPC"]
        self.hire_cost = get_hire_cost(camp, npc)
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            if camp.can_add_lancemate():
                mylist.append(
                    Offer(
                        "[NOEXPOSURE] I think ${} is a fair signing price. [DOYOUACCEPTMYOFFER]"
                        .format(self.hire_cost),
                        context=ContextTag((context.PROPOSAL, context.JOIN)),
                        data={"subject": "joining my lance"},
                        subject=self,
                        subject_start=True,
                    ))
                mylist.append(
                    Offer("[DENY_JOIN] [GOODBYE]",
                          context=ContextTag((context.DENY, context.JOIN)),
                          subject=self))
                if camp.credits >= self.hire_cost:
                    mylist.append(
                        Offer("[THANKS_FOR_CHOOSING_ME] [LETSGO]",
                              context=ContextTag(
                                  (context.ACCEPT, context.JOIN)),
                              subject=self,
                              effect=self._join_lance))
            mylist.append(
                Offer("[HELLO] I see you are also a cavalier.",
                      context=ContextTag((context.HELLO, ))))
            mylist.append(LMSkillsSelfIntro(npc))

        return mylist
    def NPC_offers(self, camp):
        mylist = list()
        npc = self.elements["NPC"]
        self.hire_cost = get_hire_cost(camp, npc)
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            if camp.can_add_lancemate():
                if npc.get_reaction_score(camp.pc, camp) > 20:
                    mylist.append(Offer("[IWOULDLOVETO] [THANKS_FOR_CHOOSING_ME]",
                                        context=ContextTag((context.PROPOSAL, context.JOIN)),
                                        data={"subject": "joining my lance"},
                                        effect=self._join_lance
                                        ))
                else:
                    mylist.append(Offer("Normally I charge ${:,} up front. [DOYOUACCEPTMYOFFER]".format(self.hire_cost),
                                        context=ContextTag((context.PROPOSAL, context.JOIN)),
                                        data={"subject": "joining my lance"},
                                        subject=self, subject_start=True,
                                        ))
                    mylist.append(Offer("[DENY_JOIN] [GOODBYE]",
                                        context=ContextTag((context.DENY, context.JOIN)), subject=self
                                        ))
                    if camp.credits >= self.hire_cost:
                        mylist.append(Offer("[THANKS_FOR_CHOOSING_ME] [LETSGO]",
                                            context=ContextTag((context.ACCEPT, context.JOIN)), subject=self,
                                            effect=self._pay_to_join
                                            ))
                mylist.append(Offer(
                    "[HELLO] [WAITINGFORMISSION]", context=ContextTag((context.HELLO,))
                ))
            mylist.append(LMSkillsSelfIntro(npc))

        return mylist
Example #5
0
 def NPC_offers(self, camp):
     mylist = list()
     npc = self.elements["NPC"]
     if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
         if camp.can_add_lancemate():
             mylist.append(
                 Offer("I can't believe you asked me... [LETSGO]",
                       context=ContextTag((context.JOIN, )),
                       effect=self._join_lance))
         mylist.append(
             Offer("[HELLO] Some day I want to become a cavalier like you.",
                   context=ContextTag((context.HELLO, ))))
     mylist.append(LMSkillsSelfIntro(npc))
     return mylist
Example #6
0
    def NPC_offers(self, camp):
        mylist = list()
        npc = self.elements["NPC"]
        self.hire_cost = get_hire_cost(camp, npc) // 2
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            if camp.can_add_lancemate():
                if npc.get_reaction_score(camp.pc, camp) > 20:
                    mylist.append(
                        Offer(
                            "[IWOULDLOVETO] I'll do my best to not let you down.",
                            context=ContextTag(
                                (context.PROPOSAL, context.JOIN)),
                            data={"subject": "joining my lance"},
                            effect=self._join_lance))
                else:
                    mylist.append(
                        Offer(
                            "I'll sign up with you for just ${}. [DOYOUACCEPTMYOFFER]"
                            .format(self.hire_cost),
                            context=ContextTag(
                                (context.PROPOSAL, context.JOIN)),
                            data={"subject": "joining my lance"},
                            subject=self,
                            subject_start=True,
                        ))
                    mylist.append(
                        Offer("[DENY_JOIN] [GOODBYE]",
                              context=ContextTag((context.DENY, context.JOIN)),
                              subject=self))
                    if camp.credits >= self.hire_cost:
                        mylist.append(
                            Offer(
                                "[THANKS_FOR_CHOOSING_ME] I'll do my best to not let you down.",
                                context=ContextTag(
                                    (context.ACCEPT, context.JOIN)),
                                subject=self,
                                effect=self._pay_to_join))
                mylist.append(
                    Offer(
                        "[HELLO] The life of a cavalier is full of ups and downs... right now I'm in one of those downs.",
                        context=ContextTag((context.HELLO, ))))
            else:
                mylist.append(
                    Offer(
                        "[HELLO] Be careful out there... all it takes is one little mistake to cost you everything.",
                        context=ContextTag((context.HELLO, ))))
            mylist.append(LMSkillsSelfIntro(npc))

        return mylist
Example #7
0
    def NPC_offers(self, camp):
        mylist = list()
        npc = self.elements["NPC"]
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            if camp.can_add_lancemate() and npc.get_reaction_score(camp.pc, camp) > 0:
                mylist.append(Offer("[THANKS_FOR_CHOOSING_ME] [LETSGO]",
                                    context=ContextTag((context.JOIN,)),
                                    effect=self._join_lance
                                    ))
            mylist.append(Offer(
                "[HELLO] [WAITINGFORMISSION]", context=ContextTag((context.HELLO,))
            ))
        mylist.append(LMSkillsSelfIntro(npc))

        return mylist
    def NPC_offers(self, camp):
        mylist = list()
        npc = self.elements["NPC"]
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            if camp.can_add_lancemate() and npc.get_reaction_score(camp.pc, camp) > 0:
                mylist.append(Offer("And there's my way out of {METROSCENE}! [LETSGO]".format(**self.elements),
                                    context=ContextTag((context.JOIN,)),
                                    effect=self._join_lance
                                    ))
            mylist.append(Offer(
                "[HELLO] This town is boring... if I had a way out, I'd take it in a second.", context=ContextTag((context.HELLO,))
            ))
        mylist.append(LMSkillsSelfIntro(npc))

        return mylist
Example #9
0
    def NPC_offers(self, camp):
        mylist = list()
        npc = self.elements["NPC"]
        self.hire_cost = get_hire_cost(camp, npc)
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            if camp.can_add_lancemate():
                if npc.get_reaction_score(camp.pc, camp) > 60:
                    mylist.append(
                        Offer("[IWOULDLOVETO] [THANKS_FOR_CHOOSING_ME]",
                              context=ContextTag(
                                  (context.PROPOSAL, context.JOIN)),
                              data={"subject": "joining my lance"},
                              effect=self._join_lance))
                else:
                    mylist.append(
                        Offer(
                            "My regular signing rate is ${}. [DOYOUACCEPTMYOFFER]"
                            .format(self.hire_cost),
                            context=ContextTag(
                                (context.PROPOSAL, context.JOIN)),
                            data={"subject": "joining my lance"},
                            subject=self,
                            subject_start=True,
                        ))
                    mylist.append(
                        Offer("[DENY_JOIN] [GOODBYE]",
                              context=ContextTag((context.DENY, context.JOIN)),
                              subject=self))
                    if camp.credits >= self.hire_cost:
                        mylist.append(
                            Offer("[THANKS_FOR_CHOOSING_ME] [LETSGO]",
                                  context=ContextTag(
                                      (context.ACCEPT, context.JOIN)),
                                  subject=self,
                                  effect=self._pay_to_join))
                mylist.append(
                    Offer("[HELLO] [WAITINGFORMISSION]",
                          context=ContextTag((context.HELLO, ))))
            else:
                mylist.append(
                    Offer(
                        "[HELLO] Must be nice going off, having adventures with your lancemates. I'd like to do that again someday.",
                        context=ContextTag((context.HELLO, ))))
            mylist.append(LMSkillsSelfIntro(npc))

        return mylist
Example #10
0
    def NPC_offers(self, camp):
        mylist = list()
        npc = self.elements["NPC"]
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            if camp.can_add_lancemate():
                mylist.append(Offer("[THANKS_FOR_CHOOSING_ME] [LETSGO]",
                                    context=ContextTag((context.JOIN,)),
                                    effect=self._join_lance
                                    ))
            else:
                mylist.append(Offer("You've got a full crew right now, but if you ever find yourself in need of a qualified medic come back and find me.",
                                    context=ContextTag((context.JOIN,)),
                                    effect=self._defer_join
                                    ))
        mylist.append(Offer(
            "[HELLO] Lately I've been spending too much time here, when I'd rather be out in the danger zone saving lives.", context=ContextTag((context.HELLO,))
        ))
        mylist.append(LMSkillsSelfIntro(npc))

        return mylist
Example #11
0
    def NPC_offers(self, camp: gears.GearHeadCampaign):
        mylist = list()
        npc: gears.base.Character = self.elements["NPC"]
        self.hire_cost = get_hire_cost(camp, npc)
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            mylist.append(LMSkillsSelfIntro(npc))
            if not self._did_mecha_chat:
                mylist.append(Offer(
                    "[HELLO] I just checked cav-net and it says you are a cavalier?",
                    context=ContextTag((context.HELLO,)), subject=npc, subject_start=True
                ))

                pcmek: gears.base.Mecha = camp.get_pc_mecha(camp.pc)
                if pcmek:
                    engine, gyro = pcmek.get_engine_rating_and_gyro_status()
                    if engine > 1700:
                        opinion = "That makes it one of the most powerful mecha out there. When an engine that size blows up, it's really something."
                    elif engine > 1100:
                        opinion = "That makes it a powerful mecha. You could probably be an arena contender with something like that."
                    elif engine > 750:
                        opinion = "That makes it solidly above average. A good mecha, but maybe not a great one."
                    elif engine > 450:
                        opinion = "That is enough power to get by, I guess. If I were you I'd consider upgrading to a bigger engine."
                    elif engine > 0:
                        opinion = "That's a really tiny engine. Like, barely enough to move with. I'm not sure you could run a metro bus on that."
                    else:
                        opinion = "I don't know why you'd pilot a mecha without an engine in it, but I'll assume you have your reasons."
                    mylist.append(Offer(
                        "Did you know that the {} you pilot has a class {} engine? {}".format(pcmek.get_full_name(), engine, opinion),
                        context=ContextTag((context.CUSTOM,)), subject=npc,
                        data={"reply": "Yes, I am. Would you like to talk about mecha?"},
                        effect=self._complete_mecha_chat
                    ))

                else:
                    mylist.append(Offer(
                        "Well, it also says here that you are currently dispossessed, so I don't know what we would have to talk about. I have a {}.".format(npc.mecha_pref),
                        context=ContextTag((context.CUSTOM,)), subject=npc,
                        data={"reply": "Yes, I am. Would you like to talk about mecha?"},
                        effect=self._complete_mecha_chat
                    ))

                mylist.append(Offer(
                    "Mine is a {}. I'm hoping to get a better one someday but to do that I'd have to become a cavalier and go on missions.".format(npc.mecha_pref),
                    context=ContextTag((context.CUSTOMREPLY,)), subject=npc,
                    data={"subject": "your mecha", "reply": "[HELLO:INFO]"},
                    effect=self._complete_mecha_chat
                ))

            else:
                mylist.append(Offer(
                    "[HELLO] I have a {} and someday I will get the chance to use it.".format(npc.mecha_pref),
                    context=ContextTag((context.HELLO,))
                ))

                mylist.append(Offer(
                    "I would love to be a cavalier someday. First I'd need a lance to join. Trying to do that job by yourself is a quick path to an early grave. Or at least you could lose your mecha. I don't want to lose my mecha.",
                    context=ContextTag((context.INFO,context.PERSONAL)), subject=npc,
                    data={"subject": "cavaliers"}, no_repeats=True
                ))

                if camp.can_add_lancemate():
                    if camp.renown > npc.renown:
                        mylist.append(Offer("[IWOULDLOVETO] [THANKS_FOR_CHOOSING_ME]",
                                            context=ContextTag((context.PROPOSAL, context.JOIN)),
                                            data={"subject": "joining my lance"},
                                            effect=self._join_lance
                                            ))
                    else:
                        mylist.append(
                            Offer("I would love to join your lance but the standard rate for a pilot of my ranking is ${:,}. [DOYOUACCEPTMYOFFER]".format(self.hire_cost),
                                  context=ContextTag((context.PROPOSAL, context.JOIN)),
                                  data={"subject": "joining my lance"},
                                  subject=self, subject_start=True,
                                  ))
                        mylist.append(Offer("[DENY_JOIN] [GOODBYE]",
                                            context=ContextTag((context.DENY, context.JOIN)), subject=self
                                            ))
                        if camp.credits >= self.hire_cost:
                            mylist.append(Offer("[THANKS_FOR_CHOOSING_ME] [LETSGO]",
                                                context=ContextTag((context.ACCEPT, context.JOIN)), subject=self,
                                                effect=self._pay_to_join
                                                ))
        else:
            self.end_plot(camp)

        return mylist
Example #12
0
    def NPC_offers(self, camp: gears.GearHeadCampaign):
        mylist = list()
        npc = self.elements["NPC"]
        self.hire_cost = get_hire_cost(camp, npc) * 2
        if gears.relationships.RT_LANCEMATE not in npc.relationship.tags:
            if self._rumor_memo_delivered:
                if camp.can_add_lancemate():
                    if npc.get_reaction_score(camp.pc, camp) > 60:
                        mylist.append(Offer("[IWOULDLOVETO] It's about time for me to get back in the saddle.",
                                            context=ContextTag((context.PROPOSAL, context.JOIN)),
                                            data={"subject": "joining my lance"},
                                            effect=self._join_lance
                                            ))
                    else:
                        mylist.append(
                            Offer("It'd take ${:,} to get me in the seat of a mech again. [DOYOUACCEPTMYOFFER]".format(
                                self.hire_cost),
                                  context=ContextTag((context.PROPOSAL, context.JOIN)),
                                  data={"subject": "joining my lance"},
                                  subject=self, subject_start=True,
                                  ))
                        mylist.append(Offer("[DENY_JOIN] [GOODBYE]",
                                            context=ContextTag((context.DENY, context.JOIN)), subject=self
                                            ))
                        if camp.credits >= self.hire_cost:
                            mylist.append(Offer("Huh, I really didn't expect you to pony up that much cash... [LETSGO]",
                                                context=ContextTag((context.ACCEPT, context.JOIN)), subject=self,
                                                effect=self._pay_to_join
                                                ))
            elif camp.pc.has_badge(gears.oldghloader.TYPHON_SLAYER.name):
                mylist.append(Offer(
                    "[HELLO] You're one of the cavaliers who defeated Typhon, aren't you?",
                    context=ContextTag([context.HELLO, ]), subject=npc, subject_start=True
                ))
                mylist.append(Offer(
                    "You probably don't remember me... I'm one of the pilots who also took part in the battle of Snake Lake, but just for a minute. Literally just a minute. Never even saw Typhon itself. Haven't piloted a mecha since.",
                    context=ContextTag([context.CUSTOM, ]), subject=npc,
                    data={"reply": "Yes, I am."}
                ))
                if npc.get_reaction_score(camp.pc, camp) > 20:
                    mylist.append(Offer("[IWOULDLOVETO] [LETSGO]",
                                        context=ContextTag((context.CUSTOMREPLY,)),
                                        data={"reply": "[INFO_PERSONAL:JOIN]"}, subject=npc,
                                        effect=self._join_lance
                                        ))
                else:
                    mylist.append(Offer("Nah, adventuring is a mug's game. I'm staying right here.",
                                        context=ContextTag((context.CUSTOMREPLY,)),
                                        data={"reply": "[INFO_PERSONAL:JOIN]"}, subject=npc,
                                        effect=self.end_plot
                                        ))
            mylist.append(LMSkillsSelfIntro(npc))

        else:
            mylist.append(Offer(
                "[HELLO] Be careful out there... all it takes is one little mistake to cost you everything.",
                context=ContextTag((context.HELLO,))
            ))
            self.end_plot(camp)

        return mylist