Files

908 lines
58 KiB
TypeScript

// @structural-rewrite-v1
import { _decorator, Animation, AnimationComponent, Button, Color, EventTouch, HorizontalTextAlignment, instantiate, Label, Node, Prefab, randomRange, randomRangeInt, tween, UITransform, Vec2, Vec3, VerticalTextAlignment } from 'cc';
import { Ragdoll } from '../../Ragdoll/Ragdoll';
import { AssetController } from '../AssetController';
import { EventCenter } from '../EventCenter';
import { LevelState } from '../EnumFile';
import { FPSCameraController } from '../FPSCameraController';
import { GameController } from '../GameController';
import { AudioMgr } from '../framework/audio/AudioMgr';
import { LocalSaveMgr } from '../framework/data/LocalSaveMgr';
import { PanelBase } from '../framework/ui/PanelBase';
import { connectPanelButtons, runPanelAction, runRewardedPanelAction } from '../framework/ui/PanelInteraction';
import { UIManager } from '../framework/ui/UIManager';
import { QingBaoPanel } from './QingBaoPanel';
import { SettingPanel } from './SettingPanel';
import { TargetIconItem } from './TargetIconItem';
import { CombatHudAction, CombatHudModel, CombatHudSnapshot } from '../domain/CombatHudModel';
const { ccclass, property } = _decorator;
const tutorialLayouts = [
['Tap the fire button', [[0, false], [1, false], [2, false], [3, true], [4, true]]],
['Tap the aim button', [[0, true], [1, true], [3, false], [2, true]]],
['Swipe to aim at the target', [[1, false], [3, true], [5, false], [4, false]]],
['Tap the fire button', [[5, true], [1, true], [3, false], [4, false]]],
] as const;
@ccclass('PlayPanel')
export class PlayPanel extends PanelBase {
static instance: PlayPanel = null;
@property(Node)
moveNode: Node = null;
@property(Node)
saoMiaoTip: Node = null;
@property(Node)
aimContent: Node = null;
@property(Node)
closeAim: Node = null;
@property(Node)
cancelLabel: Node = null;
@property(Prefab)
targetIconPrefab: Prefab = null;
@property(Node)
targetIconParent: Node = null;
@property(Button)
anim: Button = null;
@property(Button)
qingBao: Button = null;
@property(Label)
timerLabel: Label = null;
@property(Button)
saoMiao: Button = null;
@property(Button)
setting: Button = null;
@property(Label)
levelIndexLabel: Label = null;
@property(Button)
fire: Button = null;
@property(Node)
finger: Node = null;
@property(Node)
qingBaoResultNode: Node = null;
@property(Button)
qingBaoResultBtn: Button = null;
@property(AnimationComponent)
alienAnim: AnimationComponent = null;
@property(Label)
tutorialLabel: Label = null;
@property(Node)
tutorialLabelNode: Node = null;
@property(Node)
targetNode: Node = null;
@property(Node)
tipNode1: Node = null;
@property(Node)
tipNode2: Node = null;
@property(Node)
tipNode3: Node = null;
@property([Animation])
shootAnimations: Animation[] = [];
targetIcons: TargetIconItem[] = [];
isOpenSaomiao = false;
offset: Vec2;
tipTimer = 0;
onTip = false;
tutorialTarget: Ragdoll;
isOnAim = false;
limitFire = false;
downTime: Date;
startTouchPos: Vec2 = null;
onStep = false;
private readonly hud = new CombatHudModel();
protected onLoad(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (PlayPanel["instance"] = this);
void (this["bindInput"]());
void (this["bindButtons"]());
void (this["createDeveloperButtons"]());
void ((EventCenter["onEnemyDie"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["on"](null, this["refreshTargetCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this));
}
} while (false);
}
finally {
}
}
protected onOpen(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["resetPanelState"]());
void (this["initEnemies"]());
void ((this["levelIndexLabel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["string"] = `Level ${(GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["levelIndex"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown}`);
void (this["beginTutorialIfNeeded"]());
}
} while (false);
}
finally {
}
}
protected update(dt: number): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["showTimer"]());
void (this["updateTipTimer"](dt));
}
} while (false);
}
finally {
}
}
protected lateUpdate(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["updateSaomiao"]());
void (this["updateTargetPos"]());
}
} while (false);
}
finally {
}
}
onClickSetting(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (runPanelAction(() => (UIManager["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["openPanel"](SettingPanel)));
}
} while (false);
}
finally {
}
}
showTimer(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void ((this["timerLabel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["string"] = this["formatTime"](Math["ceil"]((GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["timer"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)));
}
} while (false);
}
finally {
}
}
onClickQingBao(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (runRewardedPanelAction(() => {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void ((UIManager["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["openPanel"](QingBaoPanel));
void (this["closeTip"]());
void ((this["qingBaoResultNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = true);
void (((this["qingBao"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = false);
}
} while (false);
}
finally {
}
}));
}
} while (false);
}
finally {
}
}
onClickQingBaoResult(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (runPanelAction(() => {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void ((UIManager["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["openPanel"](QingBaoPanel));
void (this["closeTip"]());
}
} while (false);
}
finally {
}
}));
}
} while (false);
}
finally {
}
}
onClickSaoMiao(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (runRewardedPanelAction(() => {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void ((this["saoMiaoTip"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = true);
void ((GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["SetSaoMiaoTarget"]());
void (this["offset"] = new Vec2(randomRange(-200, 200), randomRange(-200, 200)));
void (this["updateSaomiao"]());
void (this["dispatchHud"]({ "kind": 'scan', "open": true }));
void (this["closeTip"]());
}
} while (false);
}
finally {
}
}));
}
} while (false);
}
finally {
}
}
startTip(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["dispatchHud"]({ "kind": 'tip', "open": true }));
void ((AudioMgr["inst"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playOneShot"]((AssetController["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["xiao"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (this["setTipNodesActive"](true));
void ((this["alienAnim"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["play"]());
}
} while (false);
}
finally {
}
}
closeTip(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["dispatchHud"]({ "kind": 'tip', "open": false }));
void (this["setTipNodesActive"](false));
}
} while (false);
}
finally {
}
}
updateTargetPos(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const target = this["tutorialTarget"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
if (!target)
return;
void (this["handleTrackedTargetDeath"](target));
void ((this["targetNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["position"] = (FPSCameraController["getInstance"]()["camera"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["convertToUINode"]((target["centerNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["getWorldPosition"](), this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
if (((this["targetNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["position"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["y"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown < 0 && Math["abs"](((this["targetNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["position"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["x"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) < 30) {
void (this["EnterStep3"]());
void (FPSCameraController["getInstance"]()["setTutorialRotate"](target["centerNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
}
}
} while (false);
}
finally {
}
}
updateSaomiao(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const target = (GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["saoMiaoTarget"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
if (!target)
return;
void (this["handleTrackedTargetDeath"](target));
if (!(this["isOpenSaomiao"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown))
return;
const position = (FPSCameraController["getInstance"]()["camera"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["convertToUINode"]((target["centerNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["getWorldPosition"](), this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
void ((this["saoMiaoTip"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["position"] = new Vec3((position["x"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) + ((this["offset"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["x"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown), (position["y"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) + ((this["offset"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["y"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown), 0));
}
} while (false);
}
finally {
}
}
switchAim(onAim: boolean): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const level = GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
void (this["dispatchHud"]({ "kind": 'aim', "active": onAim }));
const hasQingBaoTarget = level["haveQingBaoTarget"]();
void (this["setNodesActive"]([
[(this["anim"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, !onAim],
[(this["fire"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, onAim],
[this["cancelLabel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, onAim],
[(this["qingBao"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, false],
[this["qingBaoResultNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, !onAim && hasQingBaoTarget],
[(this["saoMiao"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, !onAim],
[this["aimContent"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, onAim],
[this["closeAim"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, !onAim],
[level["gunNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, !onAim],
]));
}
} while (false);
}
finally {
}
}
refreshTargetCount(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const aliveCount = (GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["aliveCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
void ((this["targetIcons"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["forEach"]((icon, index) => icon["switchActive"](index < aliveCount)));
}
} while (false);
}
finally {
}
}
initEnemies(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["clearTargetIcons"]());
const count = ((GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["enemies"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["length"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
void (this["targetIcons"] = Array["from"]({ "length": count }, () => this["createTargetIcon"]()));
}
} while (false);
}
finally {
}
}
onClickAim(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (runPanelAction(() => {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (FPSCameraController["getInstance"]()["onAimButtonClick"](true));
void (this["switchAim"](true));
if (this["onStep"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)
void (this["EnterStep2"]());
}
} while (false);
}
finally {
}
}));
}
} while (false);
}
finally {
}
}
onClickFire(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
if (this["limitFire"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)
return;
if (this["onStep"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)
void (this["finishTutorial"]());
void (this["closeTip"]());
void ((AudioMgr["inst"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playOneShot"]((AssetController["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["fire"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (this["playShotEffect"](FPSCameraController["getInstance"]()["shoot"]()));
void (this["playAimFeedback"]());
}
} while (false);
}
finally {
}
}
onTouchStart(event: EventTouch): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (FPSCameraController["getInstance"]()["onTouchStart"](event));
void (this["downTime"] = new Date());
void (this["startTouchPos"] = event["getLocation"]());
}
} while (false);
}
finally {
}
}
onTouchMove(event: EventTouch): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (FPSCameraController["getInstance"]()["onTouchMove"](event));
}
} while (false);
}
finally {
}
}
onTouchEnd(event: EventTouch): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
if (!(this["isOnAim"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown))
return;
const touchDuration = new Date()["getTime"]() - (this["downTime"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["getTime"]();
const location = event["getLocation"]();
const moveDistance = Math["abs"](((this["startTouchPos"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["x"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) - (location["x"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)) + Math["abs"](((this["startTouchPos"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["y"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) - (location["y"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
if (!(this["onStep"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) && touchDuration < 200 && moveDistance < 20) {
void (FPSCameraController["getInstance"]()["onAimButtonClick"](false));
void (this["switchAim"](false));
}
}
} while (false);
}
finally {
}
}
EnterStep1(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (this["showTutorialLayout"](1));
}
} while (false);
}
finally {
}
}
EnterStep2(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (this["showTutorialLayout"](2));
}
} while (false);
}
finally {
}
}
EnterStep3(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (this["showTutorialLayout"](3));
}
} while (false);
}
finally {
}
}
finishTutorial(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["showTutorialLayout"](0));
void (this["dispatchHud"]({ "kind": 'tutorial', "active": false }));
void (this["tutorialTarget"] = null);
void ((LocalSaveMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["completeTutorial"]());
}
} while (false);
}
finally {
}
}
protected onDestroy(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (PlayPanel["instance"] = null);
void ((EventCenter["onEnemyDie"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["off"](null, this["refreshTargetCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this));
}
} while (false);
}
finally {
}
}
private bindInput(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void ((this["moveNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["on"]((Node["EventType"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["TOUCH_START"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onTouchStart"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this));
void ((this["moveNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["on"]((Node["EventType"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["TOUCH_MOVE"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onTouchMove"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this));
void ((this["moveNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["on"]((Node["EventType"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["TOUCH_END"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onTouchEnd"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this));
}
} while (false);
}
finally {
}
}
private bindButtons(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (connectPanelButtons(this, [
[this["anim"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickAim"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["fire"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickFire"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["qingBao"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickQingBao"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["qingBaoResultBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickQingBaoResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["saoMiao"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickSaoMiao"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["setting"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickSetting"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
]));
}
} while (false);
}
finally {
}
}
private createDeveloperButtons(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const buttonSpecs: ReadonlyArray<readonly [
string,
string,
Vec3,
() => void
]> = [
['DEV_KillEnemies', 'DEV: Kill Enemies', new Vec3(350, 830, 0), this["onClickDevKillEnemies"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
['DEV_CompleteLevel', 'DEV: Complete Level', new Vec3(350, 760, 0), this["onClickDevCompleteLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
];
void (buttonSpecs["forEach"]((spec) => this["createDeveloperButton"](...spec)));
}
} while (false);
}
finally {
}
}
private createDeveloperButton(name: string, text: string, position: Vec3, callback: () => void): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const buttonNode = new Node(name);
void (buttonNode["layer"] = ((this["setting"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["layer"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
void (buttonNode["parent"] = ((this["setting"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["parent"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
void (buttonNode["setPosition"](position));
void (buttonNode["addComponent"](UITransform)["setContentSize"](220, 60));
const button = buttonNode["addComponent"](Button);
const labelNode = new Node('Label');
void (labelNode["layer"] = buttonNode["layer"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
void (labelNode["parent"] = buttonNode);
void (labelNode["addComponent"](UITransform)["setContentSize"](220, 60));
const label = labelNode["addComponent"](Label);
void (label["string"] = text);
void (label["fontSize"] = 24);
void (label["lineHeight"] = 32);
void (label["color"] = new Color(255, 220, 90, 255));
void (label["horizontalAlign"] = HorizontalTextAlignment["CENTER"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
void (label["verticalAlign"] = VerticalTextAlignment["CENTER"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
void ((button["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["on"]((Button["EventType"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["CLICK"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, callback, this));
void (buttonNode["active"] = false);
}
} while (false);
}
finally {
}
}
private onClickDevKillEnemies(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const level = GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
if (level["levelState"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown !== LevelState["Running"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)
return;
void ((AudioMgr["inst"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playOneShot"]((AssetController["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["click"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void ((level["enemies"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["filter"]((enemy) => !(enemy["isDie"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown))["forEach"]((enemy) => enemy["setEnabled"](true)));
}
} while (false);
}
finally {
}
}
private onClickDevCompleteLevel(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const level = GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
if (level["levelState"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown !== LevelState["Running"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)
return;
void ((AudioMgr["inst"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playOneShot"]((AssetController["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["click"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (level["win"]());
}
} while (false);
}
finally {
}
}
private resetPanelState(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["switchAim"](false));
void ((this["qingBaoResultNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = false);
void (this["dispatchHud"]({ "kind": 'reset' }));
void ((this["saoMiaoTip"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = false);
void (this["closeTip"]());
}
} while (false);
}
finally {
}
}
private beginTutorialIfNeeded(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["dispatchHud"]({
"kind": 'tutorial',
"active": (GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["levelIndex"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown === 1 && !(((LocalSaveMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playerData"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["haveTutorial"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown),
}));
if (this["onStep"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) {
void (this["EnterStep1"]());
void (this["tutorialTarget"] = (GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["getTutorialAliveEnemey"]());
return;
}
void (this["setNodesActive"]([
[this["targetNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, false],
[this["finger"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, false],
[this["tutorialLabelNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, false],
]));
void (this["tutorialTarget"] = null);
}
} while (false);
}
finally {
}
}
private updateTipTimer(dt: number): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: if (this["dispatchHud"]({ "kind": 'tickTip', "deltaTime": dt }))
void (this["startTip"]());
}
} while (false);
}
finally {
}
}
private handleTrackedTargetDeath(target: Ragdoll): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
if (!(target["isDie"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown))
return;
void ((this["saoMiaoTip"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = false);
void (this["dispatchHud"]({ "kind": 'scan', "open": false }));
}
} while (false);
}
finally {
}
}
private setTipNodesActive(active: boolean): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (this["setNodesActive"]([
[this["tipNode1"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, active],
[this["tipNode2"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, active],
[this["tipNode3"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, active],
]));
}
} while (false);
}
finally {
}
}
private showTutorialLayout(step: number): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const nodes = [this["targetNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["finger"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["tutorialLabelNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["moveNode"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["cancelLabel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, (this["fire"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown];
const [text, states] = tutorialLayouts[step];
void (this["setNodesActive"](states, nodes));
void ((this["tutorialLabel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["string"] = text);
}
} while (false);
}
finally {
}
}
private playShotEffect(hitEnemy: boolean): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
if (!hitEnemy || (this["shootAnimations"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["length"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown === 0)
return;
const effect = (this["shootAnimations"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)[randomRangeInt(0, (this["shootAnimations"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["length"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)];
void ((effect["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = true);
void (effect["play"]());
void (this["scheduleOnce"](() => (effect["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = false, 0.8));
}
} while (false);
}
finally {
}
}
private playAimFeedback(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["dispatchHud"]({ "kind": 'fireLock', "locked": true }));
void (tween(this["aimContent"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["to"](0.05, { "scale": new Vec3(1, 1, 1), "position": new Vec3(0, 120, 0) })["to"](0.05, { "scale": new Vec3(0.8, 0.8, 1), "position": new Vec3() })["call"](() => this["dispatchHud"]({ "kind": 'fireLock', "locked": false }))["start"]());
}
} while (false);
}
finally {
}
}
private dispatchHud(action: CombatHudAction): boolean {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const signal = (this["hud"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["dispatch"](action);
void (this["applyHud"]((this["hud"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["snapshot"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
return signal;
}
} while (false);
}
finally {
}
}
private applyHud(snapshot: Readonly<CombatHudSnapshot>): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (Object["assign"](this, snapshot));
}
} while (false);
}
finally {
}
}
private clearTargetIcons(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void ((this["targetIcons"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["forEach"]((icon) => (icon["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["destroy"]()));
void ((this["targetIcons"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["length"] = 0);
}
} while (false);
}
finally {
}
}
private createTargetIcon(): TargetIconItem {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const iconNode = instantiate(this["targetIconPrefab"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
void (iconNode["parent"] = this["targetIconParent"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
const icon = iconNode["getComponent"](TargetIconItem);
void (icon["switchActive"](true));
return icon;
}
} while (false);
}
finally {
}
}
}