diff --git a/game/common/enums.py b/game/common/enums.py index 2a6e854..c3c2aa7 100644 --- a/game/common/enums.py +++ b/game/common/enums.py @@ -29,6 +29,7 @@ class ActionType: select_contract = 4 choose_speed = 5 heal = 6 + set_speed = 7 class Region: none = 0 diff --git a/game/common/stats.py b/game/common/stats.py index 7babf66..970b99f 100644 --- a/game/common/stats.py +++ b/game/common/stats.py @@ -266,7 +266,7 @@ class GameStats: maximum_gas_price = 5 - truck_maximum_speed = 80 + truck_maximum_speed = 100 contract_node_count = { 'short': 8, diff --git a/game/controllers/action_controller.py b/game/controllers/action_controller.py index 445cdfe..ca791fd 100644 --- a/game/controllers/action_controller.py +++ b/game/controllers/action_controller.py @@ -47,15 +47,14 @@ def handle_actions(self, player): self.heal(player) elif(player_action == ActionType.upgrade): self.upgrade_level(player, player.action.action_parameter) - - elif(player_action == ActionType.choose_speed): + elif(player_action == ActionType.set_speed): #This is an ActionType because the user client cannot directly influence truck values. - player.truck.set_current_speed(player.action_parameter) + player.truck.set_current_speed(player.action.action_parameter) else: self.print("Action aborted: no active contract!") - # Action Methods --------------------------------------------------------- + # Action Methods --------------------------------------------------------- def move(self, player): road = player.action.action_parameter @@ -68,7 +67,7 @@ def move(self, player): for route in self.current_location.roads: if route == road: #May need to be redone player.truck.current_node = self.current_location.next_node - self.event_controller.trigger_event(road, player, player.truck) + self.event_controller.event_chance(road, player, player.truck) time_taken = (road.length / player.truck.get_current_speed()) * luck gas_used = (road.length/(GameStats.truck_starting_mpg * fuel_efficiency))/(GameStats.truck_starting_max_gas*100) player.truck.body.current_gas -= gas_used diff --git a/game/controllers/event_controller.py b/game/controllers/event_controller.py index da21304..dc7eaba 100644 --- a/game/controllers/event_controller.py +++ b/game/controllers/event_controller.py @@ -3,6 +3,7 @@ from game.controllers.controller import Controller import random from game.controllers.controller import Controller +import math class EventController(Controller): @@ -21,12 +22,11 @@ def trigger_event(self, road, player, truck): player.time -= GameStats.event_type_time[chosen_event_type] * (1 - mods['DamageMod']) def event_chance(self, road, player, truck): - #evaluate 25% chance - happens = random.choices( - [True, False], weights=GameStats.base_event_probability, k=1)[0] - #event chance 25% -> 40% if truck going really fast - if (truck.get_current_speed > 70): - happens = random.choices([True, False], weights=[40,60], k=1)[0] + if (truck.get_current_speed() > 50): + chance = .0295*((truck.get_current_speed() - 50)**2) + 25.612 + else: + chance = 15*(math.log10(truck.get_current_speed()+1)) + happens = random.choices([True, False], weights=[chance, 100-chance],k=1)[0] if happens: self.trigger_event(road, player, truck)