*E?@%,M#F6;{^?None BotBurguerColorTouch InternalTimeStyleCoreEngine WalkPrioritybRotatingPickup RespawnTimePickupMessageGiveToTriggerTimer bEnabledPath RestartTime SetRespawn SpawnCopy RemoteRoleSystemTextureUSizeVSizePalette BecomeItem DrawTypePickupbHiddenPostBeginPlay MaxColorPriorityMultiplierBotDesireabilityVBitsVClampUClampUBitsMipZero ReturnValue InventoryActorPawnClassPackage TextBufferMaxDesireabilityObject FunctionStateStructProperty LocationOtherEventInstigator Palette1BotIconsObjectPropertyFloatProperty bTrigEnable BoolProperty ByteProperty ScriptTextbSleeph //============================================================================= // BotBurguer. It's a special sort of pathnode to make bots actually walk it first than // any other path. Bots think that they are picking up inventory. // // //============================================================================= class BotBurguer expands Inventory; #exec TEXTURE IMPORT NAME=BotBurguer FILE=BotBurguer.bmp GROUP=Icons FLAGS=2 #exec TEXTURE IMPORT NAME=BotBurguer FILE=BotBurguer.bmp GROUP=Icons PALETTE=BotBurguer var() byte WalkPriority; //Defines which "burguer" path they will prefer (higher priority, higher "apetite") var() bool bTrigEnable; //You might want to disable the BotBurguering, usefull to Assault var() bool bEnabledPath; //Self-Explanatory :) var() float RestartTime; //If 0, bots will loop between 2 burguers most likely, this // number means that the burguer restarts the bot "apetite" // each x seconds var() byte PriorityMultiplier; //WalkPriority multiPlier var bool bSleep; auto state Pickup { function Touch( actor Other ); } function Touch( actor Other ); function PostBeginPlay() { Super.PostBeginPlay(); Texture = None; if (bEnabledPath) MaxDesireability = PriorityMultiplier * WalkPriority * 0.012; else MaxDesireability = -1.0; } function Trigger(actor Other, pawn EventInstigator) { if (bTrigEnable) { If (!bEnabledPath) { MaxDesireability = WalkPriority * 0.012; bEnabledPath = True; } else { MaxDesireability = -1.0; bEnabledPath = False; } } } event float BotDesireability( pawn Bot ) { if (!bSleep) { If (!bEnabledPath) return -1; if (VSize(Bot.Location - Location) >= 48) return MaxDesireability; else { bSleep = True; SetTimer(RestartTime, False); return -1; } } else return -1; } function Timer() { bSleep = False; } function BecomeItem(){} function GiveTo( pawn Other ){} function inventory SpawnCopy( pawn Other ){} function SetRespawn(){}  $!" " #" "" %*UA+*"-2X@  &   1#' (6) #8+'//35/*'N''-''/-;;5'55/535>;>3>333;;3BA78*A35BA>AKA3;>B;>A888K<3/;>;88>;A>A;88878A>5!V,/A8AAAAAA87Q777AB;IigXk//;;BAA88877Q788<;;#oZZA''54<>A888RQR8<<;'O ZeS*--CA<888A<>>/iMD:P'4C<KB>BA8K;1/>AAK7Q7>/?%4'.;A77A;?|.;8QQAEw|?\x͘.[a{}߲eΫFOsF){@/5|B3BA;A7ѡBEYMbFƑ7~kcsYNqr‰5tX8^E7lQJw`^[=5lG1jIDzRDlP3m>"a\K/&Y6*>*&K22G;" L8.qdytԷI?02|uqZ\^GD_P5O@<:.`PJN9:jgmminZȉzW~lTY,-%}nTwhhSaDUYHJI?ɷ^oKɳI߼}VnpF|DїpAEJ-KH[<[n:l~ALFQ<`zVpXXPi7dKA-5>33?'TZ3pr`6BQ-`y>pLq”)9&Ra39K3I`/Dyq +!e8J(@FY-ӝtݙZ{AdEmq7G_N`vr1~GUXoi5UiYӱdq M9J  o  B*5-?::D<@  ,vGE-2-<D<-'E-(  =rf^--D ?,0[-'a(d  B2:Гt$@ S $@ Q -( U  W Y [ ++*'*/*(*89-*)*;/*9120*<***0**/ ///*,// 8*+*./ // U> a m: z6 F S _& l=4s ypl15C\I)_Y HZ 3 cZpZ3 K[FX[ K^\3 i]4 v] gC^Hj_& ra ~a^b yb3 Tcac3 |cId7dd