home *** CD-ROM | disk | FTP | other *** search
- class com.neodelight.game.EventScript
- {
- var script;
- var targets;
- static var ram = new Object();
- function EventScript(script)
- {
- this.script = script;
- this.targets = new Object();
- }
- static function init()
- {
- com.neodelight.game.EventScript.reset();
- }
- static function reset()
- {
- com.neodelight.game.EventScript.ram = new Object();
- }
- function run(self, partner)
- {
- var _loc9_ = 0;
- while(_loc9_ < this.script.length)
- {
- var _loc8_ = this.script[_loc9_];
- this.targets.this = self;
- this.targets.partner = partner;
- this.targets.level = _global.world.levelMc;
- this.targets.player = _global.game.player;
- this.targets.root = _root;
- this.targets.script = com.neodelight.game.EventScript;
- this.targets.ram = com.neodelight.game.EventScript.ram;
- var _loc7_ = _loc8_[0].split(".");
- var _loc5_ = this.targets[_loc7_[0]];
- var _loc4_ = 1;
- while(_loc4_ < _loc7_.length)
- {
- _loc5_ = _loc5_[_loc7_[_loc4_]];
- _loc4_ = _loc4_ + 1;
- }
- if(!_loc5_)
- {
- trace("#ERROR: EventScript.run(): target not found: " + _loc8_[0]);
- }
- var _loc6_ = _loc5_[_loc8_[1]](self,partner,_loc8_[2],this);
- if(_loc6_ && typeof _loc6_ == "object")
- {
- if(_loc6_[0] == 0)
- {
- _loc9_ = _loc9_ + 1;
- }
- if(_loc6_[0] == 2)
- {
- }
- if(_loc6_[0] == 3)
- {
- break;
- }
- }
- _loc9_ = _loc9_ + 1;
- }
- return true;
- }
- static function ifParticipant(partner0, partner1, args)
- {
- if(partner0.id == args[0] || partner1.id == args[0])
- {
- return [1];
- }
- return [0];
- }
- static function ifNotParticipant(partner0, partner1, args)
- {
- if(partner0.id == args[0] || partner1.id == args[0])
- {
- return [0];
- }
- return [1];
- }
- static function ifTrue(partner0, partner1, args, script)
- {
- var _loc1_ = com.neodelight.game.EventScript.getVariableValue(args[0],script);
- var _loc2_ = com.neodelight.game.EventScript.getVariableValue(args[2],script);
- switch(args[1])
- {
- case "":
- return !_loc1_ ? [0] : [1];
- case "<":
- return _loc1_ >= _loc2_ ? [0] : [1];
- case ">":
- return _loc1_ <= _loc2_ ? [0] : [1];
- case "<=":
- case "=<":
- return _loc1_ > _loc2_ ? [0] : [1];
- case ">=":
- case "=>":
- return _loc1_ < _loc2_ ? [0] : [1];
- case "==":
- return _loc1_ != _loc2_ ? [0] : [1];
- case "!=":
- return _loc1_ == _loc2_ ? [0] : [1];
- case "eq":
- return _loc1_ ne _loc2_ ? [0] : [1];
- case "ne":
- return _loc1_ eq _loc2_ ? [0] : [1];
- default:
- trace("#ERROR: EventScript.ifTrue: unknown comparison type: " + args[1]);
- }
- }
- static function exit()
- {
- return [3];
- }
- static function setVar(self, partner, args, script)
- {
- var _loc2_ = args[0].split(".");
- var _loc3_ = script.targets[_loc2_[0]];
- var _loc1_ = 1;
- while(_loc1_ < _loc2_.length - 1)
- {
- _loc3_ = _loc3_[_loc2_[_loc1_]];
- _loc1_ = _loc1_ + 1;
- }
- _loc3_[_loc2_[_loc2_.length - 1]] = args[1];
- }
- static function trace(self, partner, args)
- {
- trace(args[0]);
- }
- static function soundEvent(self, partner, args)
- {
- _global.game.snd.playEvent(args[0],args[1]);
- }
- static function getVariableValue(variable, script)
- {
- switch(typeof variable)
- {
- case "number":
- case "boolean":
- return variable;
- case "string":
- if(variable.substr(0,1) == "\"")
- {
- return variable.substring(1,variable.length - 1);
- }
- var _loc2_ = variable.split(".");
- var _loc3_ = script.targets[_loc2_[0]];
- var _loc1_ = 1;
- while(_loc1_ < _loc2_.length - 1)
- {
- _loc3_ = _loc3_[_loc2_[_loc1_]];
- _loc1_ = _loc1_ + 1;
- }
- return _loc3_[_loc2_[_loc2_.length - 1]];
- break;
- default:
- trace("#ERROR: EventScript.getVariableValue: unknown var type: " + typeof variable);
- }
- }
- function toString()
- {
- return "[EventScript]";
- }
- }
-