2022-11-19 12:58:07 +00:00
const BaseCharacter = require ( "./BaseCharacter" ) ;
window . ATK _CHARACTER _STATE = {
Idle1 : [ 0 , "Idle1" ] ,
Walking : [ 1 , "Walking" ] ,
Atk1 : [ 2 , "Atk1" ] ,
2022-11-23 04:30:30 +00:00
Atked1 : [ 3 , "Atked1" ] ,
2022-11-19 12:58:07 +00:00
} ;
2022-11-20 13:07:45 +00:00
window . ATK _CHARACTER _STATE _ARR = [ ] ;
for ( let k in window . ATK _CHARACTER _STATE ) {
window . ATK _CHARACTER _STATE _ARR . push ( window . ATK _CHARACTER _STATE [ k ] ) ;
}
2022-11-19 12:58:07 +00:00
cc . Class ( {
extends : BaseCharacter ,
properties : {
animNode : {
type : cc . Node ,
default : null
} ,
} ,
ctor ( ) {
2022-11-20 10:53:33 +00:00
this . speciesName = null ;
2022-11-22 09:12:51 +00:00
this . hp = 100 ;
this . maxHp = 100 ;
this . framesToRecover = 0 ;
2022-11-20 10:53:33 +00:00
} ,
setSpecies ( speciesName ) {
this . speciesName = speciesName ;
this . effAnimNode = this . animNode . getChildByName ( this . speciesName ) ;
this . animComp = this . effAnimNode . getComponent ( dragonBones . ArmatureDisplay ) ;
this . animComp . playAnimation ( ATK _CHARACTER _STATE . Idle1 [ 1 ] ) ;
this . effAnimNode . active = true ;
2022-11-19 12:58:07 +00:00
} ,
onLoad ( ) {
BaseCharacter . prototype . onLoad . call ( this ) ;
} ,
2022-11-25 03:20:05 +00:00
updateCharacterAnim ( rdfPlayer , prevRdfPlayer , forceAnimSwitch ) {
// Update directions
if ( this . animComp && this . animComp . node ) {
if ( 0 > rdfPlayer . dirX ) {
this . animComp . node . scaleX = ( - 1.0 ) ;
} else if ( 0 < rdfPlayer . dirX ) {
this . animComp . node . scaleX = ( 1.0 ) ;
2022-11-23 07:04:32 +00:00
}
2022-11-19 12:58:07 +00:00
}
2022-11-23 07:04:32 +00:00
// Update per character state
let newCharacterState = rdfPlayer . characterState ;
2022-11-25 03:20:05 +00:00
let prevCharacterState = ( null == prevRdfPlayer ? window . ATK _CHARACTER _STATE . Idle1 [ 0 ] : prevRdfPlayer . characterState ) ;
if ( newCharacterState != prevCharacterState ) {
// Anim is edge-triggered
const newAnimName = window . ATK _CHARACTER _STATE _ARR [ newCharacterState ] [ 1 ] ;
if ( newAnimName != this . animComp . animationName ) {
this . animComp . playAnimation ( newAnimName ) ;
console . log ( ` JoinIndex= ${ rdfPlayer . joinIndex } , Resetting anim to ${ newAnimName } , state changed: ( ${ prevCharacterState } , prevRdfPlayer is null? ${ null == prevRdfPlayer } ) -> ( ${ newCharacterState } ) ` ) ;
}
2022-11-19 12:58:07 +00:00
}
} ,
} ) ;