Package mosp_examples :: Module poi_act_wiggler :: Class PoiActWiggler
[hide private]
[frames] | no frames]

Class PoiActWiggler

source code


Implements a zombie person with random movement, infection, action stopping.

Zombie with infection range of 30 meters. Movement is random. If walking on a road network node with Cafe Location, zombie enters the cafe. Infect action is stopped while being in the cafe. When leaving action is restarted. Cafe locations have to be added to geo-data by simulation configuration.


Author: B. Henne

Instance Methods [hide private]
 
__init__(self, *args, **kwargs)
Init the Cafe Location zombie with action stopping.
source code
 
next_target(self)
Randomly finds a new next_node to move to.
source code
 
infect(self)
The infection routine itself.
source code
 
infect_other(self)
The zombie infect action.
source code
 
act_at_node(self, node)
Implementation of act_at_node: stop at Cafe, stop actions (restarted when leaving).
source code

Inherited from mosp.core.Person: __getstate__, calculate_duration, call_stop_actions, collide_circle, collide_rectangle, current_coords_impl, get_near, get_properties, get_random_way_node, get_speed, go, handle_interrupts, next_target_coord, pause_movement, reactivate, readd_actions, receive, restart_actions, send, set_speed, start_action, stop_action, stop_actions, think

Inherited from mosp.core.Person (private): _get_classname

Inherited from SimPy.Lib.Process: acquired, active, cancel, interrupt, interruptReset, interrupted, passive, queuing, start, stored, terminated

Inherited from SimPy.Lib.Process (private): _hold, _passivate

Inherited from SimPy.Lister.Lister: __repr__, __str__, attrnames

Inherited from mosp.collide.Point: collide_polygon, get_points

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __subclasshook__

Class Variables [hide private]

Inherited from SimPy.Lister.Lister: indent

Instance Variables [hide private]

Inherited from mosp.core.Person: current_coords, current_way, dest_node, last_coord, last_node, need_next_target, next_node, p_color, p_color_rgba, p_id, passivate, passivate_with_stop_actions, remove_from_sim, road_orthogonal_offset, start_node, stop_all_actions, target_coord

Properties [hide private]

Inherited from mosp.core.Person: p_agenttype, p_speed, x, y

Inherited from object: __class__

Method Details [hide private]

__init__(self, *args, **kwargs)
(Constructor)

source code 

Init the Cafe Location zombie with action stopping.

Parameters:
  • id - unique id of a person
  • sim - reference to superordinate mosp.core.Simulation
  • random - random object for Person - use superordinate mosp.core.Simulation.random
  • speed - basic walking speed of person in meter/tick
  • kwargs - additonal keyword arguments intended for inheriting classes
Overrides: object.__init__

next_target(self)

source code 

Randomly finds a new next_node to move to.

Ignores the last visited node, if possible without getting stuck. Does not set destination_node. Random movement only uses last_node and next_node of a Person.

Overrides: mosp.core.Person.next_target

Author: P. Tute

infect(self)

source code 

The infection routine itself.

If not infected, person gets infected and speed is set to its half. Action infect_other is started.

infect_other(self)

source code 

The zombie infect action.

Every 5 ticks this action is called (using the mosp action decorator). This action looks for people in range of 30 meters, and calls their infect() routine. Action is not active at beginning. It is activated by self.infect_other.start() and then is called every 5 ticks.

Decorators:
  • @action(5, start= False)

act_at_node(self, node)

source code 

Implementation of act_at_node: stop at Cafe, stop actions (restarted when leaving).

Parameters:
  • node - is the next_node the Person arrives at
Overrides: mosp.core.Person.act_at_node