1 package org
.sevenchan
.dongs
3 import org
.sevenchan
.dongs
.screens
.Encounter
;
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)
21 this._parent
= parent
;
22 this.conditionalCallback
= conditionalCallback
;
25 public function get name
():String {
28 public function get description
():String {
31 public function get children
():Vector
.<INode
> {
34 public function get content
():String {
37 public function set content
(value
:String):void {
40 public function get parent
():INode
{
44 public function canSwitchTo
(ply
:Creature
, otherCreature
:Creature
, context
:Encounter
):Boolean {
45 if(conditionalCallback
==null)
48 return conditionalCallback
.call
(context
, ply
, otherCreature
, this);
50 public function set canGoBack
(value
:Boolean):void {
53 public function get canGoBack
():Boolean{
57 public function pushChild
(c
:INode
):void {
61 public function pushMenu
(name
:String, desc
:String, conditionalCallback
:Function=null):MenuNode
{
62 var n
:MenuNode
= new MenuNode
(this, name
, desc
, conditionalCallback
);
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
);
73 public function clearChildren
():void {
74 children
.splice
(0, children
.length
);