add unarmed combat
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good

This commit is contained in:
austin 2024-10-21 11:01:16 -04:00
parent b9f0eef20e
commit c8e3a251d5
8 changed files with 116 additions and 23 deletions

View File

@ -389,6 +389,41 @@
"angularlyStatic" : true
},
"attackMoves" : [
{
"attackMoveId" : "Unarmed1",
"type" : "ATTACK_MOVE_UNARMED",
"firesProjectile" : false,
"nextMoveId" : "Unarmed2",
"nextAttackMoveWindowStart" : 0,
"nextAttackMoveWindowEnd" : 1,
"moveChainWindowStart" : 12,
"moveChainWindowEnd" : 18,
"initialMove" : true,
"attackState" : {
"animation" : {
"nameFirstPerson" : "AttackUnarmed1",
"nameThirdPerson" : "AttackUnarmed1",
"priorityCategory" : "MOVEMENT_MODIFIER"
}
}
},
{
"attackMoveId" : "Unarmed2",
"type" : "ATTACK_MOVE_UNARMED",
"firesProjectile" : false,
"nextAttackMoveWindowStart" : 0,
"nextAttackMoveWindowEnd" : 1,
"moveChainWindowStart" : 12,
"moveChainWindowEnd" : 18,
"initialMove" : false,
"attackState" : {
"animation" : {
"nameFirstPerson" : "AttackUnarmed2",
"nameThirdPerson" : "AttackUnarmed2",
"priorityCategory" : "MOVEMENT_MODIFIER"
}
}
},
{
"attackMoveId" : "Sword1HSlash1",
"type" : "MELEE_WEAPON_SWING_ONE_HAND",

View File

@ -273,6 +273,41 @@
"angularlyStatic" : true
},
"attackMoves" : [
{
"attackMoveId" : "Unarmed1",
"type" : "ATTACK_MOVE_UNARMED",
"firesProjectile" : false,
"nextMoveId" : "Unarmed2",
"nextAttackMoveWindowStart" : 0,
"nextAttackMoveWindowEnd" : 1,
"moveChainWindowStart" : 12,
"moveChainWindowEnd" : 18,
"initialMove" : true,
"attackState" : {
"animation" : {
"nameFirstPerson" : "AttackUnarmed1",
"nameThirdPerson" : "AttackUnarmed1",
"priorityCategory" : "MOVEMENT_MODIFIER"
}
}
},
{
"attackMoveId" : "Unarmed2",
"type" : "ATTACK_MOVE_UNARMED",
"firesProjectile" : false,
"nextAttackMoveWindowStart" : 0,
"nextAttackMoveWindowEnd" : 1,
"moveChainWindowStart" : 12,
"moveChainWindowEnd" : 18,
"initialMove" : false,
"attackState" : {
"animation" : {
"nameFirstPerson" : "AttackUnarmed2",
"nameThirdPerson" : "AttackUnarmed2",
"priorityCategory" : "MOVEMENT_MODIFIER"
}
}
},
{
"attackMoveId" : "Sword1HSlash1",
"type" : "MELEE_WEAPON_SWING_ONE_HAND",

View File

@ -14,26 +14,24 @@
Ticketed randomizer node for BTs to more heavily weight attacking and waiting
+ feedback driven requirements
Add punching/unarmed combat
- Weapon raised/lowered component
Implement gadgets
- Chemistry System
- Emitters
- Subscribers
- Dedicated collision engine on server
- Trap
- Bear
- Freeze
- Flame
- Bomb (to be thrown)
- Regular (Deals damage, ignites)
- Air (high push coeff)
- Flash (dazes)
- Sleep (puts enemies to sleep)
- Smoke (creates LOS blockers)
- Decoy (creates a decoy)
- Torch
- Throwable potions
- Chemistry System
- Emitters
- Subscribers
- Dedicated collision engine on server
- Trap
- Bear
- Freeze
- Flame
- Bomb (to be thrown)
- Regular (Deals damage, ignites)
- Air (high push coeff)
- Flash (dazes)
- Sleep (puts enemies to sleep)
- Smoke (creates LOS blockers)
- Decoy (creates a decoy)
- Torch
- Throwable potions
Crouching
Model clothing, hair for the human
particles, light on sword collision
@ -48,7 +46,6 @@
Fix lights not being deleted
- Not sending a "light count" var to light calculations, so the data stays in buffer even though it is not being updated
Fix block tree preventing initiating an attack
Fix equipping sword on toolbar
Fix return to title menu synchronization bug
Fix particles not spawning in correct positions

View File

@ -881,6 +881,8 @@ Fix inventory null pointer check on virtualaudiomanager
Fix inventory message for undefined id on client
Fix movement audio service when audio engine disabled
Fix idle animations (for katana)
Fix equipping sword on toolbar
Add punching/unarmed combat

View File

@ -211,6 +211,7 @@ public class EntityDataStrings {
public static final String ATTACK_MOVE_TYPE_MELEE_SWING_ONE_HAND = "MELEE_WEAPON_SWING_ONE_HAND";
public static final String ATTACK_MOVE_TYPE_MELEE_SWING_TWO_HAND = "MELEE_WEAPON_SWING_TWO_HAND";
public static final String ATTACK_MOVE_TYPE_BOW_TWO_HAND = "RANGED_WEAPON_BOW_TWO_HAND";
public static final String ATTACK_MOVE_UNARMED = "ATTACK_MOVE_UNARMED";
/**
* Ambient audio

View File

@ -420,6 +420,9 @@ public class ClientAttackTree implements BehaviorTree {
}
}
}
if(rVal == null && this.getMoveset(EntityDataStrings.ATTACK_MOVE_UNARMED) != null){
return EntityDataStrings.ATTACK_MOVE_UNARMED;
}
return rVal;
}
@ -555,6 +558,7 @@ public class ClientAttackTree implements BehaviorTree {
public void setState(AttackTreeState state){
this.state = state;
}
/**
* <p> Automatically generated </p>
* <p>
@ -564,6 +568,7 @@ public class ClientAttackTree implements BehaviorTree {
public AttackTreeDriftState getDriftState(){
return driftState;
}
/**
* <p> Automatically generated </p>
* <p>
@ -574,6 +579,7 @@ public class ClientAttackTree implements BehaviorTree {
public void setDriftState(AttackTreeDriftState driftState){
this.driftState = driftState;
}
/**
* <p> (initially) Automatically generated </p>
* <p>
@ -592,6 +598,7 @@ public class ClientAttackTree implements BehaviorTree {
Globals.entityValueTrackingService.attachTreeToEntity(parent, BehaviorTreeIdEnums.BTREE_CLIENTATTACKTREE_ID);
return rVal;
}
/**
* <p> Automatically generated </p>
* <p>
@ -603,6 +610,7 @@ public class ClientAttackTree implements BehaviorTree {
public static void detachTree(Entity entity, BehaviorTree tree){
Globals.entityValueTrackingService.detatchTreeFromEntity(entity, BehaviorTreeIdEnums.BTREE_CLIENTATTACKTREE_ID);
}
/**
* <p>
* Gets the ClientAttackTree of the entity
@ -613,6 +621,7 @@ public class ClientAttackTree implements BehaviorTree {
public static ClientAttackTree getClientAttackTree(Entity entity){
return (ClientAttackTree)entity.getData(EntityDataStrings.TREE_CLIENTATTACKTREE);
}
/**
* <p> Automatically generated </p>
* <p>
@ -639,6 +648,7 @@ public class ClientAttackTree implements BehaviorTree {
return 0;
}
}
/**
* <p> Automatically generated </p>
* <p>
@ -665,6 +675,7 @@ public class ClientAttackTree implements BehaviorTree {
return AttackTreeState.WINDUP;
}
}
/**
* <p> Automatically generated </p>
* <p>
@ -683,6 +694,7 @@ public class ClientAttackTree implements BehaviorTree {
return 0;
}
}
/**
* <p> Automatically generated </p>
* <p>
@ -701,6 +713,7 @@ public class ClientAttackTree implements BehaviorTree {
return AttackTreeDriftState.DRIFT;
}
}
/**
* <p> Automatically generated </p>
* <p>
@ -710,6 +723,7 @@ public class ClientAttackTree implements BehaviorTree {
public String getCurrentMoveId(){
return currentMoveId;
}
/**
* <p> Automatically generated </p>
* <p>
@ -720,6 +734,7 @@ public class ClientAttackTree implements BehaviorTree {
public void setCurrentMoveId(String currentMoveId){
this.currentMoveId = currentMoveId;
}
/**
* <p> (Initially) Automatically Generated </p>
* <p>

View File

@ -494,6 +494,9 @@ public class ServerAttackTree implements BehaviorTree {
}
}
}
if(rVal == null && this.getMoveset(EntityDataStrings.ATTACK_MOVE_UNARMED) != null){
return EntityDataStrings.ATTACK_MOVE_UNARMED;
}
return rVal;
}
@ -632,6 +635,7 @@ public class ServerAttackTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(SynchronizationMessage.constructServerNotifyBTreeTransitionMessage(parent.getId(), BehaviorTreeIdEnums.BTREE_SERVERATTACKTREE_ID, FieldIdEnums.TREE_SERVERATTACKTREE_SYNCEDFIELD_STATE_ID, value));
}
}
/**
* <p> Automatically generated </p>
* <p>
@ -641,6 +645,7 @@ public class ServerAttackTree implements BehaviorTree {
public AttackTreeDriftState getDriftState(){
return driftState;
}
/**
* <p> Automatically generated </p>
* <p>
@ -655,6 +660,7 @@ public class ServerAttackTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(SynchronizationMessage.constructUpdateClientStateMessage(parent.getId(), BehaviorTreeIdEnums.BTREE_SERVERATTACKTREE_ID, FieldIdEnums.TREE_SERVERATTACKTREE_SYNCEDFIELD_DRIFTSTATE_ID, value));
}
}
/**
* <p> (initially) Automatically generated </p>
* <p>
@ -673,6 +679,7 @@ public class ServerAttackTree implements BehaviorTree {
Globals.entityValueTrackingService.attachTreeToEntity(parent, BehaviorTreeIdEnums.BTREE_SERVERATTACKTREE_ID);
return rVal;
}
/**
* <p> Automatically generated </p>
* <p>
@ -684,6 +691,7 @@ public class ServerAttackTree implements BehaviorTree {
public static void detachTree(Entity entity, BehaviorTree tree){
Globals.entityValueTrackingService.detatchTreeFromEntity(entity, BehaviorTreeIdEnums.BTREE_SERVERATTACKTREE_ID);
}
/**
* <p>
* Gets the ServerAttackTree of the entity
@ -694,6 +702,7 @@ public class ServerAttackTree implements BehaviorTree {
public static ServerAttackTree getServerAttackTree(Entity entity){
return (ServerAttackTree)entity.getData(EntityDataStrings.TREE_SERVERATTACKTREE);
}
/**
* <p> Automatically generated </p>
* <p>
@ -703,6 +712,7 @@ public class ServerAttackTree implements BehaviorTree {
public String getCurrentMoveId(){
return currentMoveId;
}
/**
* <p> Automatically generated </p>
* <p>
@ -716,4 +726,5 @@ public class ServerAttackTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(SynchronizationMessage.constructUpdateClientStringStateMessage(parent.getId(), BehaviorTreeIdEnums.BTREE_SERVERATTACKTREE_ID, FieldIdEnums.TREE_SERVERATTACKTREE_SYNCEDFIELD_CURRENTMOVEID_ID, currentMoveId));
}
}
}

View File

@ -153,9 +153,6 @@ public class CommonEntityUtils {
//idle tree & generic stuff all creatures have
if(graphicsTemplate.getModel() != null && graphicsTemplate.getModel().getIdleData() != null){
ClientIdleTree.attachTree(entity, graphicsTemplate.getModel().getIdleData());
// ClientIdleTree idleTree = new ClientIdleTree(entity);
// entity.putData(EntityDataStrings.TREE_IDLE, idleTree);
// Globals.clientScene.registerBehaviorTree(idleTree);
}
}
Actor creatureActor = EntityUtils.getActor(entity);