예제 #1
0
    def combat_flow(self, user_input, input_kwargs, combat_kwargs):

        # Debug ---
        print(
            f"COMBAT | FLOW | Entity: {self.name}, input_kwargs: {input_kwargs}, combat_kwargs: {combat_kwargs}"
        )

        # Determine dmg output ---
        Combat.calc_dmg(self, user_input, input_kwargs, combat_kwargs)

        # Establish RT ---
        if self.entity_type['base'] == "player":

            self.round_time_set(combat_kwargs['round_time'])
            Update_Client.update_round_time(self)

            Lex.pub_print(
                self=self,
                target=None,
                send_kwargs={
                    'type': 'text',
                    'spacing': 1
                },
                first_person=
                f"Round time, {combat_kwargs['round_time']} seconds...",
                target_person="",
                third_person="",
            )

        # Check death ---
        self.check_death(user_input, input_kwargs)
예제 #2
0
    def round_time_dec(self):
        
        if self.conditions['round_time'] < 1:
            
            # pass
            all_schedules[self.uuid_id]['sched'].remove_event_name("round_time_dec", "rt")

        else:
            
            self.conditions['round_time'] = self.conditions['round_time'] - 1
            print("RT DEC | Reducing RT from", self.conditions['round_time'], "to", self.conditions['round_time'] - 1)

            all_schedules[self.uuid_id]['sched'].eventabs(
                time.time() + 1,                    # event timer
                1,                                  # priority (1 = highest)
                "round_time_dec",                   # event name
                "rt",                               # event type
                Character.round_time_dec,           # action
                kwargs={"self": self})              # kwargs

        Update_Client.update_round_time(self)