import es
import playerlib
import usermsg
import gamethread
import sigilmod
from sigilmod import sigilmod
sigilName = 'Death Note'
manaCost = 0
if not sigilmod.dict_infoSigils.has_key('Death Note'):
sigilmod.dict_infoSigils['Death Note'] = {}
sigilmod.dict_infoSigils['Death Note']['type'] = 'Active'
sigilmod.dict_infoSigils['Death Note']['cost'] = '%s mana + 50\% of your current mana!'%manaCost
sigilmod.dict_infoSigils['Death Note']['info'] = 'People that have hurt you will be listed for you to kill...'
''' Type in a person's name that you have made contact with and it will kill them in 30 seconds. Only 2 names can be written down every round. '''
# Death Note Sigil Coding
d_deathnote = {}
d_deathlist = []
d_cooldown = {}
def power():
userid = str(es.getcmduserid())
steamid = es.getplayersteamid(userid)
player = playerlib.getPlayer(userid)
sigil = sigilmod.getPowers(userid, sigilName)
mana = sigilmod.dict_sigPlayers[steamid]['mana']
a_manaCost = manaCost + int(mana * .5)
if int(player.isdead) != 1:
if sigil:
if not d_cooldown.has_key(steamid):
d_cooldown[steamid] = 1
if d_cooldown[steamid] == 1:
es.tell(userid, '#multi','#lightgreen[Active]#green[Death Note]#default To kill a player, you need to type in his or her name! (Requires %s mana)'%a_manaCost)
d_cooldown[steamid] = 0
gamethread.delayed(5, cooldown, steamid)
def poweroff():
return
def cooldown(steamid):
if d_cooldown[steamid] == 0:
d_cooldown[steamid] = 1
def player_hurt(ev):
attacker = ev['attacker']
victim = ev['userid']
a_steamid = es.getplayersteamid(attacker)
v_steamid = es.getplayersteamid(victim)
a_name = es.getplayername(attacker)
v_name = es.getplayername(victim)
sigil = sigilmod.getPowers(attacker, sigilName)
if sigil:
if not d_deathnote.has_key(a_steamid):
d_deathnote[a_steamid] = []
if v_name not in d_deathnote[a_steamid]:
d_deathnote[a_steamid].append(v_name)
sigil = sigilmod.getPowers(victim, sigilName)
if sigil:
if not d_deathnote.has_key(v_steamid):
d_deathnote[v_steamid] = []
if a_name not in d_deathnote[v_steamid]:
d_deathnote[v_steamid].append(a_name)
def player_say(ev):
userid = ev['userid']
text = ev['text']
sigil = sigilmod.getPowers(userid, sigilName)
if sigil:
process_deathnote(userid, text)
def process_deathnote(uid, text):
killer = uid
steamid = es.getplayersteamid(killer)
if not playerlib.getPlayer(killer).get('isdead'):
for x in d_deathnote[steamid]:
if text in x:
name = x
victim = es.getuserid(name)
if not playerlib.getPlayer(victim).get('isdead'):
mana = sigilmod.dict_sigPlayers[steamid]['mana']
a_manaCost = manaCost + int(mana * .5)
if mana >= a_manaCost:
sigilmod.dict_sigPlayers[steamid]['mana'] = mana - a_manaCost
d_deathlist.append(victim)
heartAttack(victim, killer)
break
break
def heartAttack(victim, killer):
usermsg.fade(victim, 1, 1000, 300, 255, 0, 0, 240)
es.emitsound('player', userid, 'sigilmod/sigil_heartbeat.wav', '1.0', '1.0')
name = es.getplayername(victim)
killer = es.getplayername(killer)
es.msg('#multi', '#default[%s]#green[DEATH NOTE] : #lightgreen%s'%(killer, name))
gamethread.delayed(25, finalCheck, (victim, killer))
def finalCheck(victim, killer):
gamethread.delayed(0, es.stopsound, (victim, 'sigilmod/sigil_heartbeat.wav'))
if not playerlib.getPlayer(killer).get('isdead'):
name = es.getplayername(victim)
if name in d_deathlist:
es.server.queuecmd('damage %s 9999 32 %s'%(victim, killer))
def player_spawn(ev):
userid = ev['userid']
name = es.getplayername(userid)
if name in d_deathlist:
gamethread.delayed(0.1, es.stopsound, (userid, 'sigilmod/sigil_heartbeat.wav'))
del d_deathlist[:]
def player_disconnect(ev):
steamid = ev['networkid']
if d_deathnote.has_key(steamid):
del d_deathnote[steamid]
def player_death(ev):
userid = ev['userid']
steamid = es.getplayersteamid(userid)
if d_deathnote.has_key(steamid):
d_deathnote[steamid].clear()
def es_map_start():
d_deathnote.clear()