载入中...
搜索中...
未找到
WeaponLogic.h
浏览该文件的文档.
1#pragma once
2
16namespace eve::weapon {
17
18struct AttackRequest;
19class WeaponEntity;
20
23public:
25 virtual ~IWeaponLogic() = default;
26
35 virtual const char* name() const = 0;
36
38 virtual bool canFire(const WeaponEntity& w) const = 0;
39
41 virtual void fire(WeaponEntity& w, const AttackRequest& req) = 0;
42
44 virtual void update(WeaponEntity& w, float dt) = 0;
45
47 virtual void begin(WeaponEntity& w, const AttackRequest& req) { (void)w; (void)req; }
48
50 virtual void channel(WeaponEntity& w, const AttackRequest& req, float dt) { (void)w; (void)req; (void)dt; }
51
53 virtual void end(WeaponEntity& w, const AttackRequest& req) { (void)w; (void)req; }
54};
55
61public:
62 static constexpr const char* capabilityName = "IProjectileService";
63
65 virtual ~IProjectileService() = default;
66
68 virtual void spawnProjectile(const WeaponEntity& w, const AttackRequest& req) = 0;
69};
70
71} // namespace eve::weapon
float w
Definition AnimClip.cpp:738
投射物服务:由游戏侧实现并注册为能力。 weapon 模块只认识这个接口,弹道/爆炸/受击由提供方负责。
Definition WeaponLogic.h:60
virtual void spawnProjectile(const WeaponEntity &w, const AttackRequest &req)=0
按武器模板的 projectile 参数生成一枚投射物。
virtual ~IProjectileService()=default
Releases IProjectileService resources.
static constexpr const char * capabilityName
Definition WeaponLogic.h:62
武器逻辑接口:注册到 WeaponSystem 的可插拔行为。
Definition WeaponLogic.h:22
virtual void channel(WeaponEntity &w, const AttackRequest &req, float dt)
阶段机处于 Active 时逐帧调用(引导/制导)(默认空实现)。
Definition WeaponLogic.h:50
virtual bool canFire(const WeaponEntity &w) const =0
逻辑自身的触发条件(资源/冷却/阶段由 WeaponSystem 统一检查)。
virtual void end(WeaponEntity &w, const AttackRequest &req)
阶段机进入 Recover 时调用(默认空实现)。
Definition WeaponLogic.h:53
virtual const char * name() const =0
稳定名字("hitscan" / "projectile" / "melee" / 自定义名)。
virtual void update(WeaponEntity &w, float dt)=0
每帧推进逻辑自身状态。
virtual ~IWeaponLogic()=default
Releases IWeaponLogic resources.
virtual void fire(WeaponEntity &w, const AttackRequest &req)=0
执行攻击效果:生成投射物 / 命中判定等。资源已由系统扣除。
virtual void begin(WeaponEntity &w, const AttackRequest &req)
阶段机进入 Windup 时调用(默认空实现)。
Definition WeaponLogic.h:47
武器实体:数据全部在组件里,行为在 WeaponSystem。
载具模块入口(eve.Vehicle):定义注册 / 实体工厂 / RTS 命令 / 帧调度。 设计文档:docs/dev/通用载具系统设计.md
一次攻击请求(C++ 系统 / 脚本发起)。角度均为度。 旧名 FireRequest 保留为别名,向后兼容。