master
dian.chen 1 year ago
parent 242d86b912
commit fbc29b16f6

@ -1,17 +1,18 @@
[gd_scene load_steps=9 format=3 uid="uid://bgku27xawscbt"]
[gd_scene load_steps=10 format=3 uid="uid://bgku27xawscbt"]
[ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="1_r673b"]
[ext_resource type="Script" path="res://addons/beehave/nodes/composites/selector.gd" id="2_5ltau"]
[ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="3_yeaa5"]
[ext_resource type="Script" path="res://addons/beehave/nodes/leaves/blackboard_compare.gd" id="4_40g6e"]
[ext_resource type="Script" path="res://script/ai/action_blackboard/action_blackboard_check.gd" id="4_vnt1w"]
[ext_resource type="Script" path="res://script/ai/action/action_destroy.gd" id="5_0a0n1"]
[ext_resource type="Script" path="res://script/ai/action/action_wait.gd" id="6_omj7f"]
[ext_resource type="Script" path="res://addons/beehave/nodes/leaves/blackboard_set.gd" id="7_42vmm"]
[ext_resource type="Script" path="res://script/ai/action_blackboard/action_blackboard_set.gd" id="7_gpffp"]
[ext_resource type="Script" path="res://script/ai/action/action_attack1.gd" id="7_wcjhl"]
[ext_resource type="Script" path="res://script/ai/action_blackboard/action_blackboard_add.gd" id="8_rm753"]
[node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")]
script = ExtResource("1_r673b")
blackboard = NodePath("@Node@19131")
blackboard = NodePath("@Node@19110")
[node name="SelectorComposite" type="Node" parent="."]
script = ExtResource("2_5ltau")
@ -19,10 +20,9 @@ script = ExtResource("2_5ltau")
[node name="SequenceComposite" type="Node" parent="SelectorComposite"]
script = ExtResource("3_yeaa5")
[node name="BlackboardCompareCondition" type="Node" parent="SelectorComposite/SequenceComposite"]
script = ExtResource("4_40g6e")
left_operand = "stage"
right_operand = "0"
[node name="CheckStep0" type="Node" parent="SelectorComposite/SequenceComposite"]
script = ExtResource("4_vnt1w")
key = "step"
[node name="ActionWait" type="Node" parent="SelectorComposite/SequenceComposite"]
script = ExtResource("6_omj7f")
@ -31,18 +31,18 @@ wait_time = 0.1
[node name="ActionAttack1" type="Node" parent="SelectorComposite/SequenceComposite"]
script = ExtResource("7_wcjhl")
[node name="BlackboardSetAction" type="Node" parent="SelectorComposite/SequenceComposite"]
script = ExtResource("7_42vmm")
key = "stage"
value = "2"
[node name="SetStep1" type="Node" parent="SelectorComposite/SequenceComposite"]
script = ExtResource("7_gpffp")
key = "step"
value = 1
[node name="SequenceComposite2" type="Node" parent="SelectorComposite"]
script = ExtResource("3_yeaa5")
[node name="BlackboardCompareCondition" type="Node" parent="SelectorComposite/SequenceComposite2"]
script = ExtResource("4_40g6e")
left_operand = "stage"
right_operand = "1"
[node name="CheckStep1" type="Node" parent="SelectorComposite/SequenceComposite2"]
script = ExtResource("4_vnt1w")
key = "step"
value = 1
[node name="ActionWait" type="Node" parent="SelectorComposite/SequenceComposite2"]
script = ExtResource("6_omj7f")
@ -51,23 +51,28 @@ wait_time = 0.1
[node name="ActionAttack1" type="Node" parent="SelectorComposite/SequenceComposite2"]
script = ExtResource("7_wcjhl")
[node name="BlackboardSetAction2" type="Node" parent="SelectorComposite/SequenceComposite2"]
script = ExtResource("7_42vmm")
key = "2"
value = "2"
[node name="AddHit" type="Node" parent="SelectorComposite/SequenceComposite2"]
script = ExtResource("8_rm753")
key = "hit"
value = 1
[node name="BlackboardSetAction" type="Node" parent="SelectorComposite/SequenceComposite2"]
script = ExtResource("7_42vmm")
key = "stage"
value = "2"
[node name="CheckHit5" type="Node" parent="SelectorComposite/SequenceComposite2"]
script = ExtResource("4_vnt1w")
key = "hit"
value = 5
[node name="SetStep2" type="Node" parent="SelectorComposite/SequenceComposite2"]
script = ExtResource("7_gpffp")
key = "step"
value = 2
[node name="SequenceComposite3" type="Node" parent="SelectorComposite"]
script = ExtResource("3_yeaa5")
[node name="BlackboardCompareCondition" type="Node" parent="SelectorComposite/SequenceComposite3"]
script = ExtResource("4_40g6e")
left_operand = "stage"
right_operand = "2"
[node name="CheckStep2" type="Node" parent="SelectorComposite/SequenceComposite3"]
script = ExtResource("4_vnt1w")
key = "step"
value = 2
[node name="ActionDestroy" type="Node" parent="SelectorComposite/SequenceComposite3"]
script = ExtResource("5_0a0n1")

@ -1,10 +0,0 @@
extends Action
class_name ActionBlackboardSet
@export var key: String
@export var value: Variant
func run(character: Character, blackboard: Blackboard) -> int:
blackboard.set(key, value)
return SUCCESS

@ -0,0 +1,10 @@
@icon("res://addons/beehave/icons/blackboard.svg")
class_name ActionBlackboard
extends Action
func run(character: Character, blackboard: Blackboard) -> int:
return execute(character, blackboard)
func execute(character: Character, blackboard: Blackboard) -> int:
return FAILURE

@ -0,0 +1,11 @@
extends ActionBlackboard
class_name ActionBlackboardAdd
@export var key: String
@export var value: int
func execute(character: Character, blackboard: Blackboard) -> int:
var left: int = blackboard.get_value(key, 0)
blackboard.set(key, left+value)
return SUCCESS

@ -0,0 +1,30 @@
extends ActionBlackboard
class_name ActionBlackboardCheck
enum Operators {
EQUAL,
NOT_EQUAL,
GREATER,
LESS,
GREATER_EQUAL,
LESS_EQUAL,
}
@export var key: String
@export_enum("==", "!=", ">", "<", ">=", "<=") var operator: int = 0
@export var value: int
func execute(character: Character, blackboard: Blackboard) -> int:
var left: Variant = blackboard.get_value(key, 0)
var result: bool = false
match operator:
Operators.EQUAL: result = left == value
Operators.NOT_EQUAL: result = left != value
Operators.GREATER: result = left > value
Operators.LESS: result = left < value
Operators.GREATER_EQUAL: result = left >= value
Operators.LESS_EQUAL: result = left <= value
return SUCCESS if result else FAILURE

@ -0,0 +1,10 @@
extends ActionBlackboard
class_name ActionBlackboardSet
@export var key: String
@export var value: int
func execute(character: Character, blackboard: Blackboard) -> int:
blackboard.set(key, value)
return SUCCESS
Loading…
Cancel
Save