def _commander_offers(self,camp): mylist = list() mylist.append(Offer("[WHATAREYOUDOINGHERE] This cargo is ours.", context=ContextTag([context.ATTACK,]))) mylist.append(Offer("[CHALLENGE]", context=ContextTag([context.CHALLENGE,]))) 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
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
def SHOPKEEPER_offers(self, camp: gears.GearHeadCampaign): mylist = list() mylist.append(Offer("[HELLO] Welcome to {}.".format(self.shopname), context=ContextTag([context.HELLO]), )) mylist.append(Offer("[OF_COURSE] That'll be ${:,}, please.".format(self.coffee_price), context=ContextTag([context.CUSTOM]), subject=self, subject_start=True, data={"reply": "Could we get some coffee, please?"} )) if camp.credits >= self.coffee_price: mylist.append(Offer("[HERE_YOU_GO] Please enjoy your drinks.".format(self.coffee_price), context=ContextTag([context.CUSTOMREPLY]), subject=self, data={"reply": "Alright."}, effect=self._heal_party )) mylist.append(Offer("Remember, our door is always open to you. [GOODBYE]".format(self.coffee_price), context=ContextTag([context.CUSTOMREPLY]), subject=self, data={"reply": "Maybe some other time."} )) if not self.got_explanation: mylist.append(Offer(random.choice(self.EXPLANATIONS), context=ContextTag([context.INFO]), effect=self._get_explanation, no_repeats=True, data={"subject": "setting up a coffee shop all the way out here"} )) return mylist
def NPC_offers(self,camp): mylist = list() mylist.append(Offer("[BATTLE_GREETING] If you think you can defeat me, I'll show you how wrong you are!", context=ContextTag([context.ATTACK, ]), effect=self._start_conversation)) mylist.append(Offer("[CHALLENGE]", context=ContextTag([context.CHALLENGE, ]))) return mylist
def NPC_offers(self,camp): mylist = list() mylist.append(Offer("[BATTLE_GREETING] Obviously you don't know who you're dealing with, or you wouldn't dare to face me!", context=ContextTag([context.ATTACK, ]), effect=self._start_conversation)) mylist.append(Offer("Watch me [objective_ep]!!!", context=ContextTag([context.CHALLENGE, ]))) return mylist
def NPC_offers(self, camp): mylist = list() if not self.mission_active: mylist.append( Offer("[LOOKING_FOR_CAVALIER] {}".format( self.get_mission_intro()), ContextTag([context.HELLO, context.MISSION]), data={"enemy_faction": self.elements["ENEMY_FACTION"]})) mylist.append( Offer("{}. [DOYOUACCEPTMISSION]".format(self.mission_desc), ContextTag([context.MISSION]), data={"enemy_faction": self.elements["ENEMY_FACTION"]}, subject=self, subject_start=True)) mylist.append( Offer("[IWillSendMissionDetails]; [GOODLUCK]", ContextTag([context.ACCEPT]), effect=self.activate_mission, subject=self)) mylist.append( Offer("[UNDERSTOOD] [GOODBYE]", ContextTag([context.DENY]), effect=self.end_plot, subject=self)) return mylist
def NPC_offers(self, camp): mylist = list() npc = self.elements["NPC"] self.hire_cost = lancemates.get_hire_cost(camp, npc) if gears.relationships.RT_LANCEMATE not in npc.relationship.tags: if camp.can_add_lancemate(): mylist.append( Offer( "You can hire me for ${}. [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] If you're looking for a hired killer, I'm not doing much at the moment.", context=ContextTag((context.HELLO, )))) mylist.append(plotutility.LMSkillsSelfIntro(npc)) return mylist
def _commander_offers(self, camp): mylist = list() myfac = self.elements["ALLIED_FACTION"] mylist.append( Offer( "Hold your fire- I'm not an enemy! You were sent by {}, weren't you?! I know about their secret agenda, and they're trying to keep the word from getting out..." .format(myfac), context=ContextTag([ context.ATTACK, ]))) mylist.append( Offer( "Very well, you've made it clear what side you're on. [CHALLENGE]", context=ContextTag([ context.CHALLENGE, ]))) mylist.append( Offer( "They've been taken over by extremists; {} is no longer taking orders from {}. I was ordered to attack a village, but refused... now they're after me. Be careful, they're going to come after you too." .format(myfac, myfac.parent_faction.name), context=ContextTag([ context.COMBAT_INFO, ]), data={"subject": "Secret Agenda"}, effect=self._get_info)) return mylist
def _get_generic_offers(self, npc, camp): """Get any offers that could apply to non-element NPCs.""" goffs = list() myscene = camp.scene.get_root_scene() myedge = self.elements["DZ_EDGE"] if npc is not self.elements["NPC"]: if myedge.start_node.destination is myscene and not self.road_cleared and not self._got_rumor: goffs.append( Offer( msg= "The Kerberos has lived here forever. No-one knows if it is one monster with many heads or many monsters acting together, but we do know it cannot be killed. You ought to ask {NPC} at {EXPERT_LOC} for more info. {NPC.gender.subject_pronoun} knows more about it than anyone else alive." .format(**self.elements), context=ContextTag((context.INFO, )), effect=self._get_rumor, subject="kerberos", data={"subject": "the kerberos deathworm"}, no_repeats=True)) elif myedge.end_node.destination is myscene and not self.road_cleared and not self._got_rumor: goffs.append( Offer( msg= "They're big, they're dangerous, and they can swallow a mecha whole. You should ask someone from {} if you want to know more... Usually the deathworms don't come out this far." .format(myedge.start_node.destination), context=ContextTag((context.INFO, )), subject="kerberos", data={"subject": "the kerberos deathworm"}, no_repeats=True)) return goffs
def PILOT_offers(self, camp): mylist = list() if self.eteam_defeated: mylist.append( Offer( "[THANKS_FOR_MECHA_COMBAT_HELP] I better get back to base.", dead_end=True, context=ContextTag([ ghdialogue.context.HELLO, ]), effect=self.pilot_leaves_combat)) else: myoffer = Offer("[HELP_ME_VS_MECHA_COMBAT]", dead_end=True, context=ContextTag([ ghdialogue.context.HELLO, ])) if not self.eteam_activated: myoffer.replies.append( Reply("Get out of here, I can handle this.", destination=Offer( "[THANK_YOU] I need to get back to base.", effect=self.pilot_leaves_before_combat, dead_end=True))) mylist.append(myoffer) return mylist
def NPC_offers(self, camp): mylist = list() if not self.mission_seed: mylist.append( Offer( "I have a {BUILDING_NAME} that's been taken over by bandits; I could use your help to clear them out." .format(**self.elements), context=ContextTag([ context.MISSION, ]), subject=self, subject_start=True, )) mylist.append( Offer( "[IWillSendMissionDetails]. [GOODLUCK]", context=ContextTag([ context.ACCEPT, ]), effect=self.register_adventure, subject=self, )) mylist.append( Offer( "[GOODBYE]", context=ContextTag([ context.DENY, ]), subject=self, )) return mylist
def NPC_offers(self,camp): mylist = list() mylist.append(Offer("[BATTLE_GREETING] Will this be a worthy challenge or just another boring smackdown?", context=ContextTag([context.ATTACK, ]), effect=self._start_conversation)) mylist.append(Offer("I will [objective_ep] and dare you to stop me.", context=ContextTag([context.CHALLENGE, ]))) return mylist
def NPC_offers(self, camp): mylist = list() if not self.mission_active: mylist.append( Offer( "[LOOKING_FOR_CAVALIER] Some bandits have captured the materials we need for {THING}." .format(**self.elements), ContextTag([context.HELLO, context.MISSION]))) mylist.append( Offer( "Your job will be to eliminate the bandits and recover the needed supplies. [DOYOUACCEPTMISSION]", ContextTag([context.MISSION]), subject=self, subject_start=True)) mylist.append( Offer("[IWillSendMissionDetails]; [GOODLUCK]", ContextTag([context.ACCEPT]), effect=self.activate_mission, subject=self)) mylist.append( Offer("[UNDERSTOOD] [GOODBYE]", ContextTag([context.DENY]), effect=self.end_plot, subject=self)) return mylist
def _get_generic_offers(self, npc, camp): """Get any offers that could apply to non-element NPCs.""" goffs = list() if not self.got_rumor and camp.scene.get_root_scene( ) is self.elements["LOCALE"] and npc is not self.elements["NPC"]: mynpc = self.elements["NPC"] goffs.append( Offer( msg= "I think you should speak to {} directly about all this; you can probably find {} at {}." .format(mynpc, mynpc.gender.object_pronoun, self.elements["_DEST"]), context=ContextTag((context.INFO, )), effect=self._get_rumor, subject=str(mynpc), data={"subject": str(mynpc)}, no_repeats=True)) if not self.start_missions and npc is not self.elements[ "NPC"] and npc not in camp.party: goffs.append( Offer( msg= "[as_far_as_I_know] they call themselves {}. Hopefully they will leave this place as quickly as they arrived." .format(self.elements["FACTION"]), context=ContextTag((context.INFO, )), effect=self._get_rumor, subject="bandits", data={"subject": "the bandits"}, no_repeats=True)) return goffs
def NPC_offers(self, camp: gears.GearHeadCampaign): mylist = list() npc = self.elements["NPC"] self.hire_cost = (npc.renown * npc.renown * (150 - npc.get_reaction_score(camp.pc, camp))) // 5 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(plotutility.LMSkillsSelfIntro(npc)) return mylist
def NPC_offers(self, camp): mylist = list() npc = self.elements["NPC"] self.hire_cost = npc.renown * (150 - npc.get_reaction_score(camp.pc, camp)) 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, )))) return mylist
def NPC_offers(self, camp): mylist = list() npc = self.elements["NPC"] self.hire_cost = npc.renown * (250 - npc.get_reaction_score(camp.pc, camp)) 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, )))) return mylist
def NPC_offers(self,camp): mylist = list() mylist.append(Offer("I remember you... [MEM_Clash]! This time I'm going to [objective_ep].", context=ContextTag([context.ATTACK, ]), effect=self._start_conversation)) mylist.append(Offer("[CHALLENGE]", context=ContextTag([context.CHALLENGE, ]))) return mylist
def SHOPKEEPER_offers(self, camp): mylist = list() if camp.campdata.get("MINE_MISSION_WON") and not self.got_reward: mylist.append( Offer( "[HELLO] Osmund told me that you liberated my mine from those bandits; that means you get to buy the good stuff.", context=ContextTag([context.HELLO]), effect=self._open_custom_shop)) else: mylist.append( Offer( "[HELLO] [_MAGNUS_SPIEL]", context=ContextTag([context.HELLO]), )) mylist.append( Offer("[OPENSHOP]", context=ContextTag([context.OPEN_SHOP]), effect=self.shop, data={ "shop_name": str(self.elements["LOCALE"]), "wares": "mecha" })) for inf in self.magnus_info: if inf.active: mylist.append(inf.build_offer()) return mylist
def NPC_offers(self,camp): mylist = list() mylist.append(Offer("[BATTLE_GREETING] I will [objective_ep]!", context=ContextTag([context.ATTACK, ]), effect=self._start_conversation)) mylist.append(Offer("[CHALLENGE]", context=ContextTag([context.CHALLENGE, ]))) return mylist
def NURSE_offers(self, camp): mylist = list() if not self.cured_patient: mylist.append( Offer( "[HELLO] {PATIENT} is being treated for {DISEASE}, but the case seems hopeless." .format(**self.elements), context=ContextTag([context.HELLO]), )) mylist.append( Offer( "We've tried all the treatments we know here... maybe if you could find a medical expert with knowledge of this disease." .format(**self.elements), context=ContextTag([context.CUSTOM]), subject=str(self.elements["PATIENT"]), data={"reply": "Is there anything I could do to help?"})) elif not self.got_reward and self.elements[ "NURSE"].combatant and not self.elements["PATIENT"].combatant: mylist.append( Offer( "You did it- you saved {PATIENT}! I don't have much to do around here anymore, so if you ever need a nurse on your team just ask." .format(**self.elements), context=ContextTag([context.HELLO]), effect=self._nurse_joins)) else: mylist.append( Offer("[HELLO] Thank you so much for saving {PATIENT}!".format( **self.elements), context=ContextTag([context.HELLO]))) return mylist
def _get_generic_offers(self, npc: gears.base.Character, camp: gears.GearHeadCampaign): """Get any offers that could apply to non-element NPCs.""" goffs = list() if npc.faction is self.elements["FACTION"]: rank = self.rank + 10 - npc.get_reaction_score(camp.pc, camp)//10 qol: gears.QualityOfLife = self.elements["METRO"].get_quality_of_life() if qol.defense > 0: # This town has good defenses. Convincing them to help will be easier. diff = gears.stats.DIFFICULTY_EASY elif qol.defense < 0: diff = gears.stats.DIFFICULTY_LEGENDARY else: diff = gears.stats.DIFFICULTY_AVERAGE goffs.append(Offer( "[YOUR_PLAN_IS_HOPELESS] {}".format(random.choice(self.RETORTS)), context=ContextTag((context.CUSTOM,)), subject=self, subject_start=True, data={"reply":random.choice(self.PLEAS).format(**self.elements)} )) ghdialogue.SkillBasedPartyReply( Offer( "Alright, when you fight Cetus, you will have the support of {}.".format(self.elements["METROSCENE"]), context=ContextTag((context.CUSTOMREPLY,)), subject=self, data={"reply":self.NEGCHARM[min(camp.campdata.get(DZDCVAR_NUM_ALLIANCES,0),3)]}, effect=self._win_plot ), camp, goffs, gears.stats.Charm, gears.stats.Negotiation, rank, diff ) return goffs
def PATIENT_offers(self, camp): mylist = list() if not self.got_reward: if self.elements["PATIENT"].combatant: mylist.append( Offer( "I heard that you're responsible for curing my {DISEASE}. After I'm feeling better, if you need a {PATIENT.job} on your lance, come back and ask." .format(**self.elements), context=ContextTag([context.HELLO]), effect=self._patient_joins)) else: mylist.append( Offer( "I heard that you're responsible for curing my {DISEASE}. I'll let everyone know about the wonderful thing you did!" .format(**self.elements), context=ContextTag([context.HELLO]), effect=self._patient_thanks)) else: mylist.append( Offer("[HELLO] I'll never forget what you did for me!".format( **self.elements), context=ContextTag([context.HELLO]))) return mylist
def NPC_offers(self, camp): mylist = list() mychallenge: pbge.challenges.Challenge = self.elements["CHALLENGE"] if "threat" in mychallenge.data: mylist.append( Offer( "[HELLO] I need to obtain more mecha for the battle against {}." .format(mychallenge.data["threat"]), ContextTag([ context.HELLO, ]))) else: mylist.append( Offer( "[HELLO] I need to obtain more mecha for the war effort.", ContextTag([ context.HELLO, ]))) ghdialogue.SkillBasedPartyReply( Offer( "[THANKS_FOR_HELP] With your guidance we've been able to strip one wreck for the parts to get two more running again.", ContextTag([ context.CUSTOM, ]), effect=self._win_the_mission, subject="obtain more mecha", data={ "reply": "I can use my repair knowledge to help you get some of these wrecks back into working order." }), camp, mylist, gears.stats.Knowledge, gears.stats.Repair, self.rank, gears.stats.DIFFICULTY_HARD) ghdialogue.SkillBasedPartyReply( Offer( "[THANKS_FOR_HELP] The improvements you've suggested should produce immediate savings in both time and resources.", ContextTag([ context.CUSTOM, ]), effect=self._win_the_mission, subject="obtain more mecha", data={ "reply": "My scientific knowledge might be able to increase your mecha production capacity." }), camp, mylist, gears.stats.Knowledge, gears.stats.Science, self.rank, gears.stats.DIFFICULTY_AVERAGE) if self._rumor_memo_delivered: mylist.append( Offer( "Yes, I've been hard at work to obtain more mecha for {}. We have a ton of salvage, but nothing that will put up a fight." .format(mychallenge.key[0]), ContextTag([ context.INFO, ]), data={"subject": "the war effort"})) return mylist
def BOUNCER_offers(self, camp: gears.GearHeadCampaign): mylist = list() mylist.append( Offer( "{NPC} isn't taking any uninvited visitors right now.".format( **self.elements), ContextTag([ context.HELLO, ]), )) if camp.credits > self.bribe_cost: mylist.append( Offer( "By an amazing coincidence, that's exactly the price of the VIP pass. Go right ahead.", ContextTag([ context.CUSTOM, ]), data={ "reply": "What if I offer you ${:,}?".format(self.bribe_cost) }, effect=self._bribe_guard)) game.ghdialogue.SkillBasedPartyReply(Offer( "Sorry, my mistake... go right ahead.", context=ContextTag([ context.CUSTOM, ]), data={ "reply": "We have an appointment. Or do you want to tell {} you didn't let {} through?" .format(self.elements["NPC"], camp.pc) }, effect=self._lie_guard), camp, mylist, gears.stats.Charm, gears.stats.Negotiation, self.rank, difficulty=gears.stats. DIFFICULTY_AVERAGE) game.ghdialogue.SkillBasedPartyReply( Offer("Huh? I don't see anything.", context=ContextTag([ context.CUSTOM, ]), data={"reply": "[DISTRACTION] (Steal Passcard)"}, effect=self._steal_card), camp, mylist, gears.stats.Reflexes, gears.stats.Stealth, self.rank, difficulty=gears.stats.DIFFICULTY_AVERAGE) return mylist
def NPC_offers(self, camp): mylist = list() mylist.append(Offer( "[BATTLE_GREETING] Your presence is costing me money, but if I salvage your mek I can earn that back.", context=ContextTag([context.ATTACK, ]), effect=self._start_conversation)) mylist.append(Offer("[CHALLENGE]", context=ContextTag([context.CHALLENGE, ]))) return mylist
def _champion_offers(self, camp): mylist = list() mylist.append( Offer("[FORMAL_MECHA_DUEL]", context=ContextTag([context.ATTACK]))) mylist.append( Offer("[FORMAL_LETSFIGHT]", context=ContextTag([context.CHALLENGE]))) return mylist
def NPC_offers(self, camp): mylist = list() mylist.append(Offer( "[WE_MEET_AGAIN] I don't know what your problem is, but I'm trying to earn a living here!", context=ContextTag([context.ATTACK, ]), effect=self._start_conversation)) mylist.append(Offer("Fine, whatever. [LETSFIGHT]", context=ContextTag([context.CHALLENGE, ]))) return mylist
def NPC_offers(self, camp): mylist = list() mylist.append(Offer( "[WE_MEET_AGAIN] What are your mission rates, anyway? Maybe next time I should hire you for my team.", context=ContextTag([context.ATTACK, ]), effect=self._start_conversation)) mylist.append(Offer("Yes, of course. I knew I wouldn't be able to buy you off right now... any cavalier who breaks a contract mid-mission will never be hired again.", context=ContextTag([context.CHALLENGE, ]))) return mylist