Shadowrun: Awakened 29 September 2011 - Build 871
tree1.py
Go to the documentation of this file.
00001 global runtree, game, rootOp, Character, Controller
00002 
00003 #Create root op, root of the whole op tree
00004 rootOp = object('ScriptVM.DynamicOp')
00005 rootOp.Desc = 'Event Mission Assigned'
00006 
00007 #Get the first area in level's list
00008 area = None
00009 if game.areas:
00010     area = game.areas[0]
00011 
00012 #Create event op
00013 testEvt = object('ScriptVM.DynamicEvent')
00014 testEvt.Desc = 'AttachEvent Area5,Entered'
00015 testEvt.EventSource = Character
00016 testEvt.EventName = 'Entered'
00017 cond = {}
00018 if area:
00019     cond['Area'] = area
00020 testEvt.Conditions = cond
00021 testEvt.MaxTriggers = 2
00022 
00023 #Create timer op
00024 timerOp = object('ScriptVM.DynamicOp')
00025 timerOp.Desc = 'AddTimer 10s'
00026 timerOp.SetDelay(0, 10.0)
00027 
00028 #Define a callback function
00029 def healthCheck():
00030     global Character
00031     print 'In custom health check callback!'
00032     return Character.GetHealth() > 7
00033 
00034 callbackVar = object('ScriptVM.DynamicVar')
00035 callbackVar.Value = healthCheck
00036     
00037 #Create script condition op
00038 scriptOp = object('ScriptVM.DynOp_Script')
00039 scriptOp.Desc = 'IfScript healthCheck'
00040 scriptOp.ConnectVar(callbackVar)
00041 
00042 #Create placeholder for "mission completed" action
00043 completeOp = object('ScriptVM.DynamicOp')
00044 completeOp.Desc = 'Completed'
00045 #Create placeholder for "mission failed" action
00046 failOp = object('ScriptVM.DynamicOp')
00047 failOp.Desc = 'Failed'
00048 
00049 #Create disable op to stop testEvt
00050 disableOp1 = object('ScriptVM.DynOp_Disable')
00051 disableOp1.Desc = 'Disable Area5,Entered'
00052 disableOp2 = object('ScriptVM.DynOp_Disable')
00053 disableOp2.Desc = 'Disable Failure Timer'
00054 
00055 #Connect up node tree
00056 rootOp.ConnectTo(testEvt)
00057 rootOp.ConnectTo(timerOp)
00058 
00059 testEvt.ConnectTo(scriptOp)
00060 testEvt.ConnectTo(disableOp2)
00061 
00062 timerOp.ConnectTo(disableOp1)
00063 
00064 #ScriptOp triggers completeOp on TRUE result, failOp on FALSE result
00065 scriptOp.ConnectTo(completeOp, None, 0) #True link
00066 scriptOp.ConnectTo(failOp, None, 1) #False link
00067 
00068 #DisableOp1 disables testEvt and triggers failOp
00069 disableOp1.ConnectTo(testEvt, None, 0) #Disable link
00070 disableOp1.ConnectTo(failOp, None, 1) #Trigger link
00071 
00072 disableOp2.ConnectTo(disableOp1, None, 0)
00073 
00074 runtree(rootOp, globals())

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net