A little more work. FINISHED HAARA TEXT, THANKS PRESIDENT BOTIS.
[18plus-7leafadventure.git] / src / org / sevenchan / dongs / MenuNode.as
blobfe95dd57914dd185dfa97c236a7042cfbd6ef801
1 package org.sevenchan.dongs
3 import org.sevenchan.dongs.screens.Encounter;
4 /**
5 * ...
6 * @author ...
7 */
8 public class MenuNode implements INode
10 private var _parent:INode=null;
11 private var _children:Vector.<INode> = new Vector.<INode>();
12 private var _name:String;
13 private var _desc:String;
14 private var _content:String = "[?]";
15 private var _canGoBack:Boolean = true;
16 private var conditionalCallback:Function = null;
17 public function MenuNode(parent:INode,name:String,desc:String, conditionalCallback:Function=null)
19 this._name = name;
20 this._desc = desc;
21 this._parent = parent;
22 this.conditionalCallback = conditionalCallback;
25 public function get name():String {
26 return _name;
28 public function get description():String {
29 return _desc;
31 public function get children():Vector.<INode> {
32 return _children;
34 public function get content():String {
35 return _content;
37 public function set content(value:String):void {
38 _content=value;
40 public function get parent():INode {
41 return _parent;
44 public function canSwitchTo(ply:Creature, otherCreature:Creature, context:Encounter):Boolean {
45 if(conditionalCallback==null)
46 return true;
47 else
48 return conditionalCallback.call(context, ply, otherCreature, this);
50 public function set canGoBack(value:Boolean):void {
51 _canGoBack = value;
53 public function get canGoBack():Boolean{
54 return _canGoBack;
57 public function pushChild(c:INode):void {
58 _children.push(c);
61 public function pushMenu(name:String, desc:String, conditionalCallback:Function=null):MenuNode {
62 var n:MenuNode = new MenuNode(this, name, desc, conditionalCallback);
63 pushChild(n);
64 return n;
67 public function pushAction(name:String, cost:int, desc:String, callback:Function, arg:*=null):ActionNode {
68 var n:ActionNode = new ActionNode(this, name, cost, desc, callback,arg);
69 pushChild(n);
70 return n;
73 public function clearChildren():void {
74 children.splice(0, children.length);