78 lines
2.2 KiB
Plaintext
78 lines
2.2 KiB
Plaintext
scriptName CraftingActivateLinker extends objectReference
|
|
;
|
|
;This script handles the Ore Veins and handshakes with the mining furniture
|
|
;===================================================================
|
|
|
|
|
|
weapon Property RequiredWeapon01 Auto
|
|
{required for player to use - optional}
|
|
|
|
Message Property FailureMessage Auto
|
|
{Message to say why you can't use this without RequiredWeapon}
|
|
|
|
bool property requiresTool = false auto
|
|
{sets whether this requires a tool to operate
|
|
default = false}
|
|
|
|
objectReference property objSelf auto hidden
|
|
{objectReference to self}
|
|
|
|
|
|
;===================================================================
|
|
;;EVENT BLOCK
|
|
;===================================================================
|
|
|
|
event onLoad()
|
|
blockActivation()
|
|
objSelf = self as objectReference
|
|
endEvent
|
|
|
|
event onActivate(objectReference akActivator)
|
|
; debug.Trace(self + " has been activated by " + akActivator)
|
|
|
|
;Actor is attempting to mine
|
|
if akActivator as actor
|
|
;if the actor is the player
|
|
if akActivator == game.getPlayer()
|
|
;if this is not depleted and the player has the right item
|
|
if requiresTool && playerHasTools() == false
|
|
FailureMessage.Show()
|
|
;enter the furniture
|
|
else
|
|
; debug.Trace(self + " should cause " + akActivator + " to activate " + getLinkedRef())
|
|
if getLinkedRef()
|
|
getLinkedRef().activate(akActivator)
|
|
Else
|
|
; debug.Trace(self + ": error this ore does not have a linkedRef")
|
|
endif
|
|
endif
|
|
Else
|
|
if getLinkedRef()
|
|
getLinkedRef().activate(akActivator)
|
|
Else
|
|
; debug.Trace(self + ": error this ore does not have a linkedRef")
|
|
endif
|
|
EndIf
|
|
|
|
;Something unexpected has activated the ore
|
|
Else
|
|
; debug.Trace(self + "has been activated by: " + akActivator + " why?")
|
|
endif
|
|
endEvent
|
|
|
|
;;;May add on hit with pickaxe here later
|
|
; Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
|
|
|
|
; endEvent
|
|
|
|
;===================================================================
|
|
;;FUNCTION BLOCK
|
|
;===================================================================
|
|
bool function playerHasTools()
|
|
if Game.GetPlayer().GetItemCount(RequiredWeapon01) > 0
|
|
return true
|
|
Else
|
|
return false
|
|
endIf
|
|
endFunction
|