super-hero/assets/cc-game/scripts/game_play/hero/Hero.ts

48 lines
1.3 KiB
TypeScript

import { _decorator, Component, Node } from 'cc';
import { HeroBase } from './HeroBase';
import { UmLog } from '../../../../cc-common/cc-util/UmLog';
import { EnemyBase } from '../enemy/EnemyBase';
import { Color } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('Hero')
export class Hero extends HeroBase {
calculateHitMeleeDamageUpdate(dt: number) {
//override
if (this.isImmuneDamage || !this.listEnemyContact.size)
return;
for (var value of this.listEnemyContact.values()) {
if (!value.enemy) return;
value.time += dt;
if (value.time >= 2) {
value.time = 0;
var damage = value.enemy.getComponent(EnemyBase)?.dmg;
// UmLog.log("calculateHitmeleedamage => ", value.enemy.name, damage);
if (!damage) continue;
this.effectColor = Color.RED;
this.onHitDamage(damage);
}
}
}
onEnemyStartContact(enemy: Node) {
super.onEnemyStartContact(enemy);
if (this.isImmuneDamage) return;
var damage = enemy.getComponent(EnemyBase)?.dmg;
if (!damage) return;
this.effectColor = Color.RED;
this.onHitDamage(damage);
}
}