Guest User

Untitled

a guest
Jun 21st, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.96 KB | None | 0 0
  1. from ..tools.events import wcs_event
  2. from ..tools.Skills import Skill
  3. from ..tools import RaceTools
  4. from ..tools import DatabaseManager
  5. from random import randint
  6.  
  7. import es
  8. import gamethread
  9. import playerlib
  10. import random
  11.  
  12. class MegaMan( object ):
  13. ############Restrictions: Boots of Speed, Sock of Feather################
  14. def __init__( self ):
  15. self.RaceName = "Mega Man"
  16. self.Coder = "MrCoolness"
  17. self.TeamLimit = 2
  18. self.RequiredLevel = 0 #1500
  19. self.NumSkills = 4
  20. self.HasUltimate = True
  21. self.AbilityCooldown = 15
  22. self.UltimateCooldown = 32.5
  23.  
  24. self.Skill_1 = Skill( "Charging Shot", "[Attack] Charge up your shot.", 10, 0, wcs_event['Attack'] )
  25. self.Skill_2 = Skill( "Dash", "[Ability] Sprint!", 20, 0, wcs_event['Ability'] )
  26. self.Skill_3 = Skill( "Jump and Shoot", "[Passive] MegaMan is an expert at jump and shoot", 0, 0, wcs_event['None'] )
  27. self.Skill_4 = Skill( "Mega Armor", "[Ultimate] Mega Man picks up an armor upgrade.", 10, 8, wcs_event['Ultimate'] )
  28.  
  29. self.SkillList = [ self.Skill_1, self.Skill_2, self.Skill_3, self.Skill_4 ]
  30.  
  31. self.Function = { '0':self.Charging_ShotOff, '1':self.Dash, '2':self.Mega_Armor, '3':self.Mega_Armor }
  32.  
  33. _playerCharging_Shot = {}
  34. def Charging_Shot( self, event_var, lvl ) :
  35. userid = event_var['attacker']
  36. victim = event_var['userid']
  37. self._playerCharging_Shot[ str(userid) ] = True
  38. if ( int(event_var['dmg_health']) ) :
  39. gamethread.delayed( 0.01, self.Charging_ShotOff, userid )
  40.  
  41. def Charging_ShotOff( self, event_var, lvl ) :
  42. userid = event_var['userid']
  43. self._playerCharging_Shot[ str(userid) ] = False
  44. gamethread.delayed( 16 - lvl, self.Charging_Shot, ( event_var, lvl ) )
  45.  
  46. _playerDash = {}
  47. def Dash( self, event_var, lvl ) :
  48. self._playerDash[ str(userid) ] = True
  49. userid = event_var['userid']
  50. player = playerlib.getPlayer( userid )
  51. speed = lvl * 3 / 100.0
  52. player.setSpeed( 1 + speed )
  53. es.tell( userid, '#multi', '#lightgreenNarcissistic #greengrants you #lightgreen%i #greenbonus speed.' % speed )
  54. gamethread.delayed( 3, self.DashOff, userid )
  55.  
  56. def DashOff( self, event_var, lvl ) :
  57. userid = event_var['userid']
  58. self._playerDash[ str(userid) ] = False
  59. es.tell( userid, '#multi', '#greenDash is ending.' )
  60.  
  61. _playerMega_Armor = {}
  62. def Mega_Armor( self, event_var, lvl ) :
  63. userid = event_var['userid']
  64. duration = lvl * 0.75
  65. reduction = ( lvl * 5 ) / 100.0
  66. if ( self._playerMastery2[ str(userid) ] == True ) :
  67. reduction += 0.20
  68. self._playerMega_Armor[ str(userid) ] = True
  69. healthlost = int(event_var['dmg_health'])
  70. armorlost = int(event_var['dmg_armor'])
  71. player = playerlib.getPlayer( userid )
  72. player.health += healthlost * reduction
  73. player.armor += armorlost * reduction
  74. es.tell( userid, '#multi', '#lightgreenMega Armor #greenreduces #lightgreen%i%% #greenof incoming damage.' % int(reduction) )
  75. gamethread.delayed( duration, self.Mega_Armor, userid )
  76.  
  77. def Mega_ArmorOff( self, userid ):
  78. self._playerMega_Armor[ str(userid) ] = False
  79. es.tell( userid, '#multi', '#lightgreenMega Armor #greenis ending.' )
  80.  
  81. def player_attack( self, event_var, points ):
  82. userid = event_var['attacker']
  83. victim = event_var['userid']
  84. if ( self._playerCharging_Shot[ str(userid) ] == True ):
  85. damage = 20
  86. player = playerlib.getPlayer( victim )
  87. es.server.queuecmd( 'damage %s %i %i %s' % ( str(player.userid), damage, 32, str(userid) ) )
  88. es.tell( userid, '#multi', '#lightgreenCharging Shot #green deals #lightgreen20 #greenbonus damage!' )
  89. if ( self._playerMastery[ str(userid) ] == True ) :
  90. totallvl = DatabaseManager._db.GetTotalLevel( steamid )
  91. damage = (totallvl - 75) / 5
  92. player = playerlib.getPlayer( victim )
  93. if ( damage >= num ) :
  94. damage = 5
  95. es.server.queuecmd( 'damage %s %i %i %s' % ( str(player.userid), damage, 32, str(userid) ) )
  96.  
  97. def round_end( self, event_var, points ):
  98. self._playerMega_Armor.clear()
  99. self._playerDash.clear()
  100. self._playerCharging_Shot.clear()
  101.  
  102. _playerMastery = {}
  103. _playerMastery2 = {}
  104. def player_spawn( self, event_var, skills ):
  105. userid = event_var['userid']
  106. gravity = 0.75
  107. RaceTools.setgravity( userid, gravity )
  108. es.tell( userid, '#multi', '#lightgreenJumping and shooting!' )
  109. steamid = es.getplayersetamid( userid )
  110. totallvl = DatabaseManager._db.GetTotalLevel( steamid )
  111. if ( totallvl > 75 ):
  112. self._playerMastery[ str(userid) ] = True
  113. damage = (totallvl - 75) / 5
  114. if ( damage >= num ) :
  115. damage = 5
  116. es.tell( userid, '#multi', '#lightgreenRace Mastery: #greenyour bullets are more powerful! #lightgreen%i #greenbonus damage' % int(damage) )
  117. if ( totallvl > 180 ) :
  118. self._playerMastery2[ str(userid) ] = True
  119. es.tell( userid, '#multi', '#lightgreenRace Mastery: #greenyour ultimate is more powerful!' )
Add Comment
Please, Sign In to add comment