Files
NGECore2/scripts/commands/forage.py
T
CharonInferar e877a44713 Jedi Loot templates inserted
Buried treasure loot realized
2014-04-25 01:49:50 +02:00

74 lines
1.9 KiB
Python

import sys
import engine.resources.scene.Point3D
import resources.common.Forager
import time
def setup():
return
def run(core, actor, target, commandString):
#if actor.getSkills('Foraging')==0:
#actor.sendSystemMessage('@skl_use:sys_forage_noskill'),0)
#if actor.isForaging()==1:
#actor.sendSystemMessage('@skl_use:sys_forage_already',0)
#return
if actor.getCombatFlag()!=0:
actor.sendSystemMessage('@skl_use:sys_forage_combatfail',0)
return
if actor.getPosture()!=0:
actor.sendSystemMessage('@skl_use:sys_forage_cant',0)
return
if core.terrainService.isWater(actor.getPlanet(), actor.getPosition().x, actor.getPosition().z):
actor.sendSystemMessage('You cannot forage while in water.',0)
return
if actor.getContainer() != None:
actor.sendSystemMessage('@skl_use:sys_forage_inside',0)
return
if actor.getAction() < 200:
actor.sendSystemMessage('@skl_use:sys_forage_attrib',0)
return
somepoint = engine.resources.scene.Point3D(0,0,0)
if actor.getAttachment('PostForagePosition')==None:
actor.setAttachment('PostForagePosition', somepoint)
oldposition = actor.getAttachment('PostForagePosition')
if actor.getPosition().getDistance2D(oldposition)<5:
actor.sendSystemMessage("@skl_use:sys_forage_empty", 0);
return
actor.sendSystemMessage('@skl_use:sys_forage_start', 0)
actor.setAttachment("PreForagePosition", actor.getPosition())
actor.setCurrentAnimation('forage')
time.sleep(1) # does NOT stall other python scripts, tested
# Each command might be its own thread
actor.setAttachment("PostForagePosition", actor.getPosition())
if actor.getCombatFlag()!=0:
actor.sendSystemMessage('@skl_use:sys_forage_combatfail',0)
return
oldposition = actor.getAttachment("PreForagePosition")
if actor.getPosition().getDistance2D(oldposition)>2:
actor.sendSystemMessage('@skl_use:sys_forage_movefail',0)
return
forager = resources.common.Forager()
forager.handleForageResults(actor)
return