Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from ..tools.events import wcs_event
- from ..tools.Skills import Skill
- from ..tools import RaceTools
- from ..tools import DatabaseManager
- from random import randint
- import es
- import gamethread
- import playerlib
- import random
- class MegaMan( object ):
- ############Restrictions: Boots of Speed, Sock of Feather################
- def __init__( self ):
- self.RaceName = "Mega Man"
- self.Coder = "MrCoolness"
- self.TeamLimit = 2
- self.RequiredLevel = 0 #1500
- self.NumSkills = 4
- self.HasUltimate = True
- self.AbilityCooldown = 15
- self.UltimateCooldown = 32.5
- self.Skill_1 = Skill( "Charging Shot", "[Attack] Charge up your shot.", 10, 0, wcs_event['Attack'] )
- self.Skill_2 = Skill( "Dash", "[Ability] Sprint!", 20, 0, wcs_event['Ability'] )
- self.Skill_3 = Skill( "Jump and Shoot", "[Passive] MegaMan is an expert at jump and shoot", 0, 0, wcs_event['None'] )
- self.Skill_4 = Skill( "Mega Armor", "[Ultimate] Mega Man picks up an armor upgrade.", 10, 8, wcs_event['Ultimate'] )
- self.SkillList = [ self.Skill_1, self.Skill_2, self.Skill_3, self.Skill_4 ]
- self.Function = { '0':self.Charging_ShotOff, '1':self.Dash, '2':self.Mega_Armor, '3':self.Mega_Armor }
- _playerCharging_Shot = {}
- def Charging_Shot( self, event_var, lvl ) :
- userid = event_var['attacker']
- victim = event_var['userid']
- self._playerCharging_Shot[ str(userid) ] = True
- if ( int(event_var['dmg_health']) ) :
- gamethread.delayed( 0.01, self.Charging_ShotOff, userid )
- def Charging_ShotOff( self, event_var, lvl ) :
- userid = event_var['userid']
- self._playerCharging_Shot[ str(userid) ] = False
- gamethread.delayed( 16 - lvl, self.Charging_Shot, ( event_var, lvl ) )
- _playerDash = {}
- def Dash( self, event_var, lvl ) :
- self._playerDash[ str(userid) ] = True
- userid = event_var['userid']
- player = playerlib.getPlayer( userid )
- speed = lvl * 3 / 100.0
- player.setSpeed( 1 + speed )
- es.tell( userid, '#multi', '#lightgreenNarcissistic #greengrants you #lightgreen%i #greenbonus speed.' % speed )
- gamethread.delayed( 3, self.DashOff, userid )
- def DashOff( self, event_var, lvl ) :
- userid = event_var['userid']
- self._playerDash[ str(userid) ] = False
- es.tell( userid, '#multi', '#greenDash is ending.' )
- _playerMega_Armor = {}
- def Mega_Armor( self, event_var, lvl ) :
- userid = event_var['userid']
- duration = lvl * 0.75
- reduction = ( lvl * 5 ) / 100.0
- if ( self._playerMastery2[ str(userid) ] == True ) :
- reduction += 0.20
- self._playerMega_Armor[ str(userid) ] = True
- healthlost = int(event_var['dmg_health'])
- armorlost = int(event_var['dmg_armor'])
- player = playerlib.getPlayer( userid )
- player.health += healthlost * reduction
- player.armor += armorlost * reduction
- es.tell( userid, '#multi', '#lightgreenMega Armor #greenreduces #lightgreen%i%% #greenof incoming damage.' % int(reduction) )
- gamethread.delayed( duration, self.Mega_Armor, userid )
- def Mega_ArmorOff( self, userid ):
- self._playerMega_Armor[ str(userid) ] = False
- es.tell( userid, '#multi', '#lightgreenMega Armor #greenis ending.' )
- def player_attack( self, event_var, points ):
- userid = event_var['attacker']
- victim = event_var['userid']
- if ( self._playerCharging_Shot[ str(userid) ] == True ):
- damage = 20
- player = playerlib.getPlayer( victim )
- es.server.queuecmd( 'damage %s %i %i %s' % ( str(player.userid), damage, 32, str(userid) ) )
- es.tell( userid, '#multi', '#lightgreenCharging Shot #green deals #lightgreen20 #greenbonus damage!' )
- if ( self._playerMastery[ str(userid) ] == True ) :
- totallvl = DatabaseManager._db.GetTotalLevel( steamid )
- damage = (totallvl - 75) / 5
- player = playerlib.getPlayer( victim )
- if ( damage >= num ) :
- damage = 5
- es.server.queuecmd( 'damage %s %i %i %s' % ( str(player.userid), damage, 32, str(userid) ) )
- def round_end( self, event_var, points ):
- self._playerMega_Armor.clear()
- self._playerDash.clear()
- self._playerCharging_Shot.clear()
- _playerMastery = {}
- _playerMastery2 = {}
- def player_spawn( self, event_var, skills ):
- userid = event_var['userid']
- gravity = 0.75
- RaceTools.setgravity( userid, gravity )
- es.tell( userid, '#multi', '#lightgreenJumping and shooting!' )
- steamid = es.getplayersetamid( userid )
- totallvl = DatabaseManager._db.GetTotalLevel( steamid )
- if ( totallvl > 75 ):
- self._playerMastery[ str(userid) ] = True
- damage = (totallvl - 75) / 5
- if ( damage >= num ) :
- damage = 5
- es.tell( userid, '#multi', '#lightgreenRace Mastery: #greenyour bullets are more powerful! #lightgreen%i #greenbonus damage' % int(damage) )
- if ( totallvl > 180 ) :
- self._playerMastery2[ str(userid) ] = True
- es.tell( userid, '#multi', '#lightgreenRace Mastery: #greenyour ultimate is more powerful!' )
Add Comment
Please, Sign In to add comment