def custom_init(self, nart):
        myscene = self.elements["LOCALE"]
        myfac = self.elements.get("ENEMY_FACTION")
        roomtype = self.elements["ARCHITECTURE"].get_a_room()
        self.register_element("ROOM", roomtype(15, 15), dident="LOCALE")

        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")

        npc1 = self.seek_element(nart,
                                 "_commander",
                                 self._npc_is_good,
                                 must_find=False,
                                 lock=True)
        if npc1:
            plotutility.CharacterMover(self, npc1, myscene, team2)
            myunit = gears.selector.RandomMechaUnit(self.rank,
                                                    120,
                                                    myfac,
                                                    myscene.environment,
                                                    add_commander=False)
        else:
            myunit = gears.selector.RandomMechaUnit(self.rank,
                                                    150,
                                                    myfac,
                                                    myscene.environment,
                                                    add_commander=True)
            self.register_element("_commander", myunit.commander)

        team2.contents += myunit.mecha_list

        npc2 = self.seek_element(nart,
                                 "_assistant",
                                 self._npc_is_good,
                                 must_find=False,
                                 lock=True)
        if npc2:
            plotutility.CharacterMover(self, npc2, myscene, team2)
        else:
            npc2 = self.register_element("_assistant",
                                         gears.selector.generate_ace(
                                             self.rank, myfac,
                                             myscene.environment),
                                         dident="_eteam")

        self.obj = adventureseed.MissionObjective(
            "Defeat {_commander} and {_assistant}".format(**self.elements),
            MAIN_OBJECTIVE_VALUE * 3)
        self.adv.objectives.append(self.obj)

        self.intro_ready = True

        return True
    def custom_init(self, nart):
        myscene = self.elements["LOCALE"]

        self.register_element("ROOM",
                              pbge.randmaps.rooms.FuzzyRoom(
                                  15, 15, anchor=pbge.randmaps.anchors.middle),
                              dident="LOCALE")

        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")

        mynpc = self.elements["LMNPC"]
        self.locked_elements.add("LMNPC")
        self.party_member = mynpc in nart.camp.party
        if self.party_member:
            plotutility.AutoLeaver(mynpc)(nart.camp)
        plotutility.CharacterMover(nart.camp,
                                   self,
                                   mynpc,
                                   myscene,
                                   team2,
                                   allow_death=False)

        self.obj = adventureseed.MissionObjective(
            "Defeat {}".format(mynpc), missionbuilder.MAIN_OBJECTIVE_VALUE * 2)
        self.adv.objectives.append(self.obj)

        self.intro_ready = True

        return True
Exemple #3
0
    def custom_init(self, nart):
        dest = self.elements["TAVERN"]
        self.party_npcs = list()
        self.talked_to_npcs = list()
        for t in range(8):
            npc = self.seek_element(nart,
                                    "NPC_{}".format(t),
                                    self._is_good_npc,
                                    scope=self.elements["METROSCENE"],
                                    must_find=False,
                                    lock=True)
            if npc:
                plotutility.CharacterMover(nart.camp, self, npc, dest,
                                           dest.civilian_team)
                self.party_npcs.append(npc)
            else:
                break

        self.started_party = False
        self.countdown = 2
        self.party_lines = random.sample(self.COMMENTS, 7)
        self.memo = Memo(
            "There's a party to celebrate the clearing of the highway at {TAVERN} in {METROSCENE}."
            .format(**self.elements),
            location=self.elements["TAVERN"])

        return True
    def custom_init( self, nart ):
        myscene = self.elements["LOCALE"]
        myroom = self.register_element("ROOM",pbge.randmaps.rooms.FuzzyRoom(10,10),dident="LOCALE")
        myfac = self.elements.get("ENEMY_FACTION")
        team2 = self.register_element("_eteam",teams.Team(enemies=(myscene.player_team,)),dident="ROOM")

        mynpc = self.seek_element(nart,"_commander",self._npc_is_good,must_find=False,lock=True)
        if mynpc:
            plotutility.CharacterMover(self,mynpc,myscene,team2)
            myunit = gears.selector.RandomMechaUnit(self.rank, 120, myfac, myscene.environment, add_commander=False)
        else:
            myunit = gears.selector.RandomMechaUnit(self.rank, 150, myfac, myscene.environment, add_commander=True)
            self.register_element("_commander",myunit.commander)

        team2.contents += myunit.mecha_list

        team3 = self.register_element("_cargoteam",teams.Team(),dident="ROOM")
        team3.contents += game.content.plotutility.CargoContainer.generate_cargo_fleet(self.rank)
        # Oh yeah, when using PyCharm, why not use ludicrously long variable names?
        self.starting_number_of_containers = len(team3.contents)

        self.obj = adventureseed.MissionObjective("Investigate the meteor", missionbuilder.MAIN_OBJECTIVE_VALUE * 2 )
        self.adv.objectives.append(self.obj)
        self.combat_entered = False
        self.combat_finished = False

        return True
    def custom_init(self, nart):
        myscene = self.elements["LOCALE"]
        myfac = self.elements.get("ENEMY_FACTION")
        roomtype = self.elements["ARCHITECTURE"].get_a_room()
        self.register_element("ROOM",
                              roomtype(15,
                                       15,
                                       anchor=pbge.randmaps.anchors.middle),
                              dident="LOCALE")

        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")

        mynpc = self.seek_element(
            nart,
            "_commander",
            self.adv.is_good_enemy_npc,
            must_find=False,
            lock=True,
            backup_seek_func=self.adv.is_good_backup_enemy)
        self.regular_checkpoint = True
        if mynpc:
            plotutility.CharacterMover(nart.camp, self, mynpc, myscene, team2)
            myunit = gears.selector.RandomMechaUnit(self.rank,
                                                    120,
                                                    myfac,
                                                    myscene.environment,
                                                    add_commander=False)
            if nart.camp.is_unfavorable_to_pc(myfac):
                self.add_sub_plot(nart,
                                  "MC_ENEMY_DEVELOPMENT",
                                  elements={"NPC": mynpc})
                self.regular_checkpoint = False
        else:
            myunit = gears.selector.RandomMechaUnit(self.rank,
                                                    150,
                                                    myfac,
                                                    myscene.environment,
                                                    add_commander=True)
            self.register_element("_commander", myunit.commander)
            if nart.camp.is_unfavorable_to_pc(myfac):
                self.add_sub_plot(
                    nart,
                    "MC_NDBCONVERSATION",
                    elements={"NPC": myunit.commander.get_pilot()})
                self.regular_checkpoint = False

        team2.contents += myunit.mecha_list

        self.obj = adventureseed.MissionObjective(
            "Pass {} Checkpoint".format(myfac),
            missionbuilder.MAIN_OBJECTIVE_VALUE * 2)
        self.adv.objectives.append(self.obj)

        self.intro_ready = True

        return True
    def custom_init(self, nart):
        myscene = self.elements["LOCALE"]
        myfac = self.elements.get("ENEMY_FACTION")
        roomtype = self.elements["ARCHITECTURE"].get_a_room()
        self.register_element("ROOM",
                              roomtype(15,
                                       15,
                                       anchor=pbge.randmaps.anchors.middle),
                              dident="LOCALE")

        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")

        mynpc = self.seek_element(nart,
                                  "_commander",
                                  self._npc_is_good,
                                  must_find=False,
                                  lock=True)
        if mynpc:
            plotutility.CharacterMover(self, mynpc, myscene, team2)
            myunit = gears.selector.RandomMechaUnit(self.rank,
                                                    70,
                                                    myfac,
                                                    myscene.environment,
                                                    add_commander=False)
        else:
            myunit = gears.selector.RandomMechaUnit(self.rank,
                                                    100,
                                                    myfac,
                                                    myscene.environment,
                                                    add_commander=True)
            self.register_element("_commander", myunit.commander)

        team2.contents += myunit.mecha_list

        myfac = self.elements.get("ENEMY_FACTION")
        if myfac:
            colors = myfac.mecha_colors
        else:
            colors = gears.color.random_mecha_colors()

        for t in range(random.randint(1, 2) + max(self.rank // 20, 0)):
            team2.contents.append(
                gears.selector.get_design_by_full_name("HAL-82 Artillery"))
            team2.contents[-1].colors = colors

        self.obj = adventureseed.MissionObjective("Destroy enemy artillery",
                                                  MAIN_OBJECTIVE_VALUE * 2)
        self.adv.objectives.append(self.obj)

        self.intro_ready = True

        return True
    def custom_init(self, nart):
        myscene = self.elements["LOCALE"]
        myroom = self.register_element("ROOM",
                                       pbge.randmaps.rooms.FuzzyRoom(10, 10),
                                       dident="LOCALE")
        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")
        team3 = self.register_element("_ateam",
                                      teams.Team(
                                          enemies=(team2, ),
                                          allies=(myscene.player_team, )),
                                      dident="ROOM")
        myunit = gears.selector.RandomMechaUnit(
            self.rank,
            200,
            self.elements.get("ENEMY_FACTION"),
            myscene.environment,
            add_commander=False)
        team2.contents += myunit.mecha_list

        mynpc = self.seek_element(nart,
                                  "PILOT",
                                  self._npc_is_good,
                                  scope=self.elements["METROSCENE"],
                                  must_find=False,
                                  lock=True)
        if mynpc:
            plotutility.CharacterMover(self, mynpc, myscene, team3)
            mek = mynpc.get_root()
            self.register_element("SURVIVOR", mek)
        else:
            mysurvivor = self.register_element(
                "SURVIVOR",
                gears.selector.generate_ace(
                    self.rank, self.elements.get("ALLIED_FACTION"),
                    myscene.environment))
            self.register_element("PILOT", mysurvivor.get_pilot())
            team3.contents.append(mysurvivor)

        self.obj = adventureseed.MissionObjective(
            "Extract allied pilot {}".format(self.elements["PILOT"]),
            MAIN_OBJECTIVE_VALUE,
            can_reset=False)
        self.adv.objectives.append(self.obj)
        self.intro_ready = True
        self.eteam_activated = False
        self.eteam_defeated = False
        self.pilot_fled = False

        return True
    def custom_init(self, nart):
        myscene = self.elements["LOCALE"]
        roomtype = self.elements["ARCHITECTURE"].get_a_room()
        self.register_element("ROOM",
                              roomtype(15,
                                       15,
                                       anchor=pbge.randmaps.anchors.middle),
                              dident="LOCALE")

        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")

        mynpc: gears.base.Character = self.seek_element(
            nart,
            "_commander",
            self.is_good_challenger,
            must_find=True,
            lock=True)
        myfac = mynpc.faction
        if not mynpc.job:
            mynpc.job = gears.jobs.ALL_JOBS["Mecha Pilot"]
        if mynpc.renown < self.rank:
            mynpc.job.scale_skills(mynpc, mynpc.renown + random.randint(1, 10))

        plotutility.CharacterMover(nart.camp, self, mynpc, myscene, team2)
        myunit = gears.selector.RandomMechaUnit(self.rank,
                                                120,
                                                myfac,
                                                myscene.environment,
                                                add_commander=False)
        self.add_sub_plot(nart,
                          "MC_ENEMY_DEVELOPMENT",
                          elements={"NPC": mynpc})

        team2.contents += myunit.mecha_list

        self.obj = adventureseed.MissionObjective(
            "Defeat challenger {}".format(self.elements["_commander"]),
            missionbuilder.MAIN_OBJECTIVE_VALUE * 2)
        self.adv.objectives.append(self.obj)

        self.intro_ready = True
        self.choice_ready = True

        self.chose_glory = False
        self.bounty_primed = False

        return True
    def custom_init(self, nart):
        myscene = self.elements["LOCALE"]
        myfac = self.elements.get("ENEMY_FACTION")
        roomtype = self.elements["ARCHITECTURE"].get_a_room()
        self.register_element("ROOM",
                              roomtype(15,
                                       15,
                                       anchor=pbge.randmaps.anchors.middle),
                              dident="LOCALE")

        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")

        if myfac:
            mynpc = self.seek_element(nart,
                                      "_commander",
                                      self._npc_is_good,
                                      must_find=False,
                                      lock=True)
        else:
            mynpc = None
        if mynpc:
            unit_size = 120
            if mynpc.renown > self.rank:
                unit_size = max(unit_size + self.rank - mynpc.renown, 50)
            plotutility.CharacterMover(self, mynpc, myscene, team2)
            myunit = gears.selector.RandomMechaUnit(self.rank,
                                                    unit_size,
                                                    myfac,
                                                    myscene.environment,
                                                    add_commander=False)
        else:
            myunit = gears.selector.RandomMechaUnit(self.rank,
                                                    150,
                                                    myfac,
                                                    myscene.environment,
                                                    add_commander=True)
            self.register_element("_commander", myunit.commander)

        team2.contents += myunit.mecha_list

        self.obj = adventureseed.MissionObjective(
            "Defeat the bandits".format(myfac), MAIN_OBJECTIVE_VALUE)
        self.adv.objectives.append(self.obj)

        self.intro_ready = True

        return True
    def custom_init(self, nart):
        myscene = self.elements["LOCALE"]
        roomtype = self.elements["ARCHITECTURE"].get_a_room()
        myroom = self.register_element(
            "ROOM",
            roomtype(10, 10, anchor=pbge.randmaps.anchors.middle),
            dident="LOCALE")
        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")
        team3 = self.register_element("_ateam",
                                      teams.Team(
                                          enemies=(team2, ),
                                          allies=(myscene.player_team, )),
                                      dident="ROOM")
        myunit = gears.selector.RandomMechaUnit(
            self.rank,
            200,
            self.elements.get("ENEMY_FACTION"),
            myscene.environment,
            add_commander=False)
        team2.contents += myunit.mecha_list

        mynpc = self.seek_element(nart, "PILOT", self._npc_is_good, lock=True)
        plotutility.CharacterMover(nart.camp, self, mynpc, myscene, team3)
        mek = mynpc.get_root()
        self.register_element("SURVIVOR", mek)
        self.add_sub_plot(nart,
                          "MT_TEAMUP_DEVELOPMENT",
                          ident="NPC_TALK",
                          elements={
                              "NPC": mynpc,
                          })

        self.obj = adventureseed.MissionObjective(
            "Respond to {}'s distress call".format(self.elements["PILOT"]),
            missionbuilder.MAIN_OBJECTIVE_VALUE,
            can_reset=False)
        self.adv.objectives.append(self.obj)
        self.choice_ready = True
        self.intro_ready = True
        self.eteam_activated = False
        self.eteam_defeated = False
        self.pilot_fled = False

        return True
    def custom_init(self, nart):
        myscene = self.elements["LOCALE"]
        myscene.attributes.add(gears.tags.SCENE_SOLO)

        self.register_element("ROOM",
                              pbge.randmaps.rooms.FuzzyRoom(10, 10),
                              dident="LOCALE")
        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")

        fac = self.elements["ENEMY_FACTION"]

        npc = self.seek_element(nart,
                                "_champion",
                                self.adv.is_good_enemy_npc,
                                must_find=False,
                                lock=True)
        if npc:
            plotutility.CharacterMover(nart.camp, self, npc, myscene, team2)
            self.add_sub_plot(nart,
                              "MC_ENEMY_DEVELOPMENT",
                              elements={"NPC": npc})
        else:
            mek = gears.selector.generate_ace(self.rank, fac,
                                              myscene.environment)
            npc = mek.get_pilot()
            self.register_element("_champion", npc)
            team2.contents.append(mek)
            champions.upgrade_to_champion(mek)

        self.obj = adventureseed.MissionObjective(
            "Defeat the {}'s champion {}".format(fac, npc),
            missionbuilder.MAIN_OBJECTIVE_VALUE * 2)
        self.adv.objectives.append(self.obj)

        self.intro_ready = True

        return True
    def custom_init(self, nart):
        myscene: gears.GearHeadScene = self.elements["LOCALE"]
        myscene.attributes |= {
            gears.tags.SCENE_SOLO, gears.tags.SCENE_ARENARULES
        }
        roomtype = self.elements["ARCHITECTURE"].get_a_room()
        self.register_element("ROOM",
                              roomtype(5,
                                       5,
                                       anchor=pbge.randmaps.anchors.middle),
                              dident="LOCALE")

        team2 = self.register_element(
            "_eteam",
            teams.Team(enemies=(myscene.player_team, )),
            dident="ROOM")

        mynpc: gears.base.Character = self.seek_element(
            nart,
            "_commander",
            self.is_good_challenger,
            must_find=True,
            lock=True)
        if not mynpc.job:
            mynpc.job = gears.jobs.ALL_JOBS["Mecha Pilot"]
        if mynpc.renown < self.rank:
            mynpc.job.scale_skills(mynpc, mynpc.renown + random.randint(1, 10))
        self.add_sub_plot(nart, "MC_DUEL_DEVELOPMENT", elements={"NPC": mynpc})

        plotutility.CharacterMover(nart.camp, self, mynpc, myscene, team2)

        self.obj = adventureseed.MissionObjective(
            "Defeat challenger {}".format(self.elements["_commander"]),
            missionbuilder.MAIN_OBJECTIVE_VALUE * 2)
        self.adv.objectives.append(self.obj)

        self.intro_ready = True
        self.choice_ready = True

        return True