game2006/server/gameserver/explosion.h
aozhiwei eb5818c8e2 1
2021-08-25 13:48:20 +08:00

46 lines
1.3 KiB
C++

#pragma once
#include "weakptr.h"
class Room;
class Explosion
{
public:
int exclude_uniid = 0;
Room* GetRoom() { return room_; };
CreatureWeakPtr GetSender() { return sender_; };
float GetDmg() { return dmg_; };
long long GetSpecialDamageType() { return special_damage_type_; };
bool IsPreBattleExplosion();
void IndifferenceAttack(Room* room,
const a8::Vec2& center,
float explosion_range,
int explosion_effect,
float dmg,
long long special_damage_type = 0);
void EnemyAndObstacleAttack(CreatureWeakPtr& sender,
const a8::Vec2& center,
float explosion_range,
int explosion_effect,
float dmg,
long long special_damage_type = 0);
void AddForceTarget(CreatureWeakPtr force_target);
private:
void InternalAttack();
private:
int type_ = 0;
Room* room_ = nullptr;
CreatureWeakPtr sender_;
CreatureWeakPtr force_target_;
float explosion_range_ = 0;
int explosion_effect_ = 0;
float dmg_ = 0;
a8::Vec2 center_;
long long special_damage_type_ = 0;
long long create_frameno_ = 0;
};