1
This commit is contained in:
parent
71d32c05a2
commit
ffa7f0982a
@ -206,3 +206,6 @@ const int MAX_TEAM_NUM = 4;
|
|||||||
const int MAX_SYS_HTTP_NUM = 2;
|
const int MAX_SYS_HTTP_NUM = 2;
|
||||||
const int MAX_USER_HTTP_NUM = 8;
|
const int MAX_USER_HTTP_NUM = 8;
|
||||||
const int MAX_ALL_HTTP_NUM = MAX_SYS_HTTP_NUM + MAX_USER_HTTP_NUM;
|
const int MAX_ALL_HTTP_NUM = MAX_SYS_HTTP_NUM + MAX_USER_HTTP_NUM;
|
||||||
|
|
||||||
|
const int DEFAULT_BORN_POINT_X = 3000;
|
||||||
|
const int DEFAULT_BORN_POINT_Y = 3000;
|
||||||
|
@ -116,6 +116,7 @@ class Human : public Entity
|
|||||||
std::set<Human*> kill_humans;
|
std::set<Human*> kill_humans;
|
||||||
Human* last_tank_attacker = nullptr;
|
Human* last_tank_attacker = nullptr;
|
||||||
long long last_tank_attack_idx = 0;
|
long long last_tank_attack_idx = 0;
|
||||||
|
const BornPoint* born_point = nullptr;
|
||||||
|
|
||||||
bool shot_start = false;
|
bool shot_start = false;
|
||||||
bool shot_hold = false;
|
bool shot_hold = false;
|
||||||
|
@ -166,14 +166,18 @@ int Room::AliveCount()
|
|||||||
void Room::AddPlayer(Player* hum)
|
void Room::AddPlayer(Player* hum)
|
||||||
{
|
{
|
||||||
assert(gas_data.gas_mode == GasInactive);
|
assert(gas_data.gas_mode == GasInactive);
|
||||||
{
|
hum->born_point = AllocBornPoint();
|
||||||
hum->pos.x = 3000 + rand() % 100;
|
if (!hum->born_point) {
|
||||||
hum->pos.y = 3000 + rand() % 200;
|
hum->pos.x = DEFAULT_BORN_POINT_X + rand() % 100;
|
||||||
|
hum->pos.y = DEFAULT_BORN_POINT_Y + rand() % 200;
|
||||||
|
} else {
|
||||||
|
hum->pos = hum->born_point->RandPoint();
|
||||||
|
}
|
||||||
hum->attack_dir = hum->pos;
|
hum->attack_dir = hum->pos;
|
||||||
hum->attack_dir.Normalize();
|
hum->attack_dir.Normalize();
|
||||||
hum->attack_dir.Rotate(a8::RandAngle());
|
hum->attack_dir.Rotate(a8::RandAngle());
|
||||||
hum->move_dir = hum->attack_dir;
|
hum->move_dir = hum->attack_dir;
|
||||||
}
|
|
||||||
hum->entity_uniid = AllocUniid();
|
hum->entity_uniid = AllocUniid();
|
||||||
hum->room = this;
|
hum->room = this;
|
||||||
hum->join_frameno = frame_no;
|
hum->join_frameno = frame_no;
|
||||||
@ -264,14 +268,18 @@ void Room::CreateAndroid(int robot_num)
|
|||||||
hum->meta = hum_meta;
|
hum->meta = hum_meta;
|
||||||
hum->robot_meta = robot_meta;
|
hum->robot_meta = robot_meta;
|
||||||
hum->entity_uniid = AllocUniid();
|
hum->entity_uniid = AllocUniid();
|
||||||
{
|
hum->born_point = AllocBornPoint();
|
||||||
hum->pos.x = 3000 + rand() % 1400;
|
if (!hum->born_point) {
|
||||||
hum->pos.y = 3000 + rand() % 1500;
|
hum->pos.x = DEFAULT_BORN_POINT_X + rand() % 1400;
|
||||||
|
hum->pos.y = DEFAULT_BORN_POINT_Y + rand() % 1500;
|
||||||
|
} else {
|
||||||
|
hum->pos = hum->born_point->RandPoint();
|
||||||
|
}
|
||||||
hum->attack_dir = hum->pos;
|
hum->attack_dir = hum->pos;
|
||||||
hum->attack_dir.Normalize();
|
hum->attack_dir.Normalize();
|
||||||
hum->attack_dir.Rotate(a8::RandAngle());
|
hum->attack_dir.Rotate(a8::RandAngle());
|
||||||
hum->move_dir = hum->attack_dir;
|
hum->move_dir = hum->attack_dir;
|
||||||
}
|
|
||||||
hum->room = this;
|
hum->room = this;
|
||||||
hum->Initialize();
|
hum->Initialize();
|
||||||
uniid_hash_[hum->entity_uniid] = hum;
|
uniid_hash_[hum->entity_uniid] = hum;
|
||||||
@ -1474,3 +1482,8 @@ void Room::NotifyWxVoip()
|
|||||||
},
|
},
|
||||||
&xtimer_attacher.timer_list_);
|
&xtimer_attacher.timer_list_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BornPoint* Room::AllocBornPoint()
|
||||||
|
{
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
@ -120,6 +120,7 @@ private:
|
|||||||
void OnGameOver();
|
void OnGameOver();
|
||||||
void RandRemoveAndroid();
|
void RandRemoveAndroid();
|
||||||
void NotifyWxVoip();
|
void NotifyWxVoip();
|
||||||
|
BornPoint* AllocBornPoint();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int elapsed_time_ = 0;
|
int elapsed_time_ = 0;
|
||||||
@ -138,6 +139,7 @@ private:
|
|||||||
std::map<int, Entity*> uniid_hash_;
|
std::map<int, Entity*> uniid_hash_;
|
||||||
std::map<int, Entity*> later_add_hash_;
|
std::map<int, Entity*> later_add_hash_;
|
||||||
std::map<int, Human*> human_hash_;
|
std::map<int, Human*> human_hash_;
|
||||||
|
std::map<int, BornPoint> born_point_hash_;
|
||||||
|
|
||||||
std::map<int, CarObject> car_hash_;
|
std::map<int, CarObject> car_hash_;
|
||||||
std::map<int, Human*> removed_robot_hash_;
|
std::map<int, Human*> removed_robot_hash_;
|
||||||
|
@ -30,3 +30,9 @@ void Skin::ToPB(cs::MFSkin* pb_obj)
|
|||||||
pb_obj->set_skin_id(skin_id);
|
pb_obj->set_skin_id(skin_id);
|
||||||
pb_obj->set_skin_lv(skin_lv);
|
pb_obj->set_skin_lv(skin_lv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a8::Vec2 BornPoint::RandPoint() const
|
||||||
|
{
|
||||||
|
a8::Vec2 born_point = pos;
|
||||||
|
return born_point;
|
||||||
|
}
|
||||||
|
@ -118,3 +118,15 @@ struct CarObject
|
|||||||
a8::Vec2 pos;
|
a8::Vec2 pos;
|
||||||
bool taken = false;
|
bool taken = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct BornPoint
|
||||||
|
{
|
||||||
|
int born_point_id = 0;
|
||||||
|
a8::Vec2 pos;
|
||||||
|
float rad = 0.0f;
|
||||||
|
|
||||||
|
int player_num = 0;
|
||||||
|
int android_num = 0;
|
||||||
|
|
||||||
|
a8::Vec2 RandPoint() const;
|
||||||
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user