|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392 |
- #pragma once
- #ifndef CONSTANTS_H
- #define CONSTANTS_H
-
- #ifndef SCCI
- #define SCCI static const constexpr inline
- #endif
-
- #undef GetMessage
- #undef SendMessage
- #undef PeekMessage
-
- namespace Constants
- {
- SCCI int frameDuration = 50; // 每帧毫秒数
- // 地图相关
- SCCI int numOfGridPerCell = 1000; // 单位坐标数
- SCCI int rows = 50; // 地图行数
- SCCI int cols = 50; // 地图列数
-
- SCCI int numOfClassroom = 10; // 教室数量
- SCCI int numOfChest = 8; // 宝箱数量
-
- SCCI int maxClassroomProgress = 10000000; // 教室最大进度
- SCCI int maxDoorProgress = 10000000; // 开关门最大进度
- SCCI int maxChestProgress = 10000000; // 宝箱最大进度
- SCCI int maxGateProgress = 18000; // 大门最大进度
-
- SCCI int numOfRequiredClassroomForGate = 7; // 打开大门需要完成的教室数量
- SCCI int numOfRequiredClassroomForHiddenGate = 3; // 打开隐藏门需要完成的教室数量
-
- // 人物属性相关
- SCCI int basicEncourageSpeed = 100;
- SCCI int basicFixSpeed = 123;
- SCCI int basicSpeedOfOpeningOrLocking = 5000;
- SCCI int basicStudentSpeedOfClimbingThroughWindows = 1222;
- SCCI int basicTrickerSpeedOfClimbingThroughWindows = 2540;
- SCCI int basicSpeedOfOpenChest = 1250;
-
- SCCI int basicHp = 3000000;
- SCCI int basicMaxGamingAddiction = 60000;
- SCCI int basicEncouragementDegree = 1500000;
- SCCI int basicTimeOfRouse = 1000;
-
- SCCI int basicStudentSpeed = 3000;
- SCCI int basicTrickerSpeed = 3600;
-
- SCCI double basicConcealment = 1;
- SCCI int basicStudentAlertnessRadius = 15 * numOfGridPerCell;
- SCCI int basicTrickerAlertnessRadius = 17 * numOfGridPerCell;
- SCCI int basicStudentViewRange = 10 * numOfGridPerCell;
- SCCI int basicTrickerViewRange = 13 * numOfGridPerCell;
- SCCI int PinningDownRange = 5 * numOfGridPerCell;
-
- SCCI int maxNumOfProp = 3; // 人物道具栏容量
-
- // 攻击相关
-
- SCCI int basicApOfTricker = 1500000;
- SCCI int basicCD = 3000; // 初始子弹冷却
- SCCI int basicCastTime = 500; // 基本前摇时间
- SCCI int basicBackswing = 800; // 基本后摇时间
- SCCI int basicRecoveryFromHit = 3700; // 基本命中攻击恢复时长
- SCCI int basicStunnedTimeOfStudent = 4300;
-
- SCCI int basicBulletMoveSpeed = 7400; // 基本子弹移动速度
- SCCI double basicRemoteAttackRange = 6000; // 基本远程攻击范围
- SCCI double basicAttackShortRange = 2200; // 基本近程攻击范围
- SCCI double basicBulletBombRange = 2000; // 基本子弹爆炸范围
-
- // 道具相关
-
- SCCI int apPropAdd = basicApOfTricker * 12 / 10;
- SCCI int apSpearAdd = basicApOfTricker * 6 / 10;
-
- // 职业相关
- struct Assassin
- {
- SCCI int moveSpeed = basicTrickerSpeed * 11 / 10;
- SCCI double concealment = 1.5;
- SCCI int alertnessRadius = basicTrickerAlertnessRadius * 13 / 10;
- SCCI int viewRange = basicTrickerViewRange * 12 / 10;
- SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
- SCCI int speedOfClimbingThroughWindows = basicTrickerSpeedOfClimbingThroughWindows;
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
- };
-
- struct Klee
- {
- SCCI int moveSpeed = basicTrickerSpeed;
- SCCI double concealment = 1;
- SCCI int alertnessRadius = basicTrickerAlertnessRadius;
- SCCI int viewRange = basicTrickerViewRange;
- SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
- SCCI int speedOfClimbingThroughWindows = basicTrickerSpeedOfClimbingThroughWindows;
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest * 11 / 10;
- };
-
- struct ANoisyPerson
- {
- SCCI int moveSpeed = (int)(basicTrickerSpeed * 1.07);
- SCCI double concealment = 0.8;
- SCCI int alertnessRadius = basicTrickerAlertnessRadius * 9 / 10;
- SCCI int viewRange = basicTrickerViewRange;
- SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
- SCCI int speedOfClimbingThroughWindows = basicTrickerSpeedOfClimbingThroughWindows * 11 / 10;
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest * 11 / 10;
- };
-
- struct Idol
- {
- SCCI int moveSpeed = basicTrickerSpeed;
- SCCI double concealment = 0.75;
- SCCI int alertnessRadius = basicTrickerAlertnessRadius;
- SCCI int viewRange = basicTrickerViewRange * 11 / 10;
- SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
- SCCI int speedOfClimbingThroughWindows = basicTrickerSpeedOfClimbingThroughWindows;
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
- };
-
- struct Athlete
- {
- SCCI int moveSpeed = basicStudentSpeed * 105 / 100;
- SCCI int maxHp = basicHp;
- SCCI int maxAddiction = basicMaxGamingAddiction * 9 / 10;
- SCCI int fixSpeed = basicFixSpeed * 6 / 10;
- SCCI int encourageSpeed = basicEncourageSpeed * 9 / 10;
- SCCI double concealment = 0.9;
- SCCI int alertnessRadius = basicStudentAlertnessRadius;
- SCCI int viewRange = basicStudentViewRange * 11 / 10;
- SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
- SCCI int speedOfClimbingThroughWindows = basicStudentSpeedOfClimbingThroughWindows * 12 / 10;
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
- };
-
- struct Teacher
- {
- SCCI int moveSpeed = basicStudentSpeed * 9 / 10;
- SCCI int maxHp = basicHp * 10;
- SCCI int maxAddiction = basicMaxGamingAddiction * 10;
- SCCI int fixSpeed = (int)(basicFixSpeed * 50 / 123);
- SCCI int encourageSpeed = basicEncourageSpeed * 8 / 10;
- SCCI double concealment = 0.5;
- SCCI int alertnessRadius = basicStudentAlertnessRadius * 2 / 3;
- SCCI int viewRange = basicStudentViewRange * 8 / 10;
- SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
- SCCI int speedOfClimbingThroughWindows = (int)(basicStudentSpeedOfClimbingThroughWindows * 1000 / 1222);
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
- };
-
- struct StraightAStudent
- {
- SCCI int moveSpeed = basicStudentSpeed * 24 / 25;
- SCCI int maxHp = basicHp * 11 / 10;
- SCCI int maxAddiction = basicMaxGamingAddiction * 13 / 10;
- SCCI int fixSpeed = basicFixSpeed * 11 / 10;
- SCCI int encourageSpeed = basicEncourageSpeed;
- SCCI double concealment = 0.9;
- SCCI int alertnessRadius = basicStudentAlertnessRadius * 9 / 10;
- SCCI int viewRange = basicStudentViewRange * 9 / 10;
- SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
- SCCI int speedOfClimbingThroughWindows = basicStudentSpeedOfClimbingThroughWindows * 10 / 12;
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
- };
-
- struct Robot
- {
- SCCI int moveSpeed = basicStudentSpeed * 9 / 10;
- SCCI int maxHp = basicHp * 0.3;
- SCCI int maxAddiction = basicMaxGamingAddiction * 0;
- SCCI int fixSpeed = (int)(basicFixSpeed * 0.7);
- SCCI int encourageSpeed = 0;
- SCCI double concealment = 0.8;
- SCCI int alertnessRadius = 0;
- SCCI int viewRange = 0;
- SCCI int speedOfOpeningOrLocking = 0;
- SCCI int speedOfClimbingThroughWindows = 1;
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest * 4 / 5;
- };
-
- struct TechOtaku
- {
- SCCI int moveSpeed = (int)(basicStudentSpeed * 0.96);
- SCCI int maxHp = basicHp * 9 / 10;
- SCCI int maxAddiction = basicMaxGamingAddiction;
- SCCI int fixSpeed = (int)(basicFixSpeed * 0.9);
- SCCI int encourageSpeed = basicEncourageSpeed;
- SCCI double concealment = 1.1;
- SCCI int alertnessRadius = basicStudentAlertnessRadius;
- SCCI int viewRange = basicStudentViewRange * 9 / 10;
- SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
- SCCI int speedOfClimbingThroughWindows = (int)(basicStudentSpeedOfClimbingThroughWindows * 0.9);
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest * 22 / 25;
- };
-
- struct Sunshine
- {
- SCCI int moveSpeed = basicStudentSpeed;
- SCCI int maxHp = basicHp * 16 / 15;
- SCCI int maxAddiction = basicMaxGamingAddiction * 11 / 10;
- SCCI int fixSpeed = basicFixSpeed;
- SCCI int encourageSpeed = basicEncourageSpeed * 6 / 5;
- SCCI double concealment = 1;
- SCCI int alertnessRadius = basicStudentAlertnessRadius;
- SCCI int viewRange = basicStudentViewRange;
- SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking * 7 / 10;
- SCCI int speedOfClimbingThroughWindows = basicStudentSpeedOfClimbingThroughWindows;
- SCCI int speedOfOpenChest = basicSpeedOfOpenChest * 9 / 10;
- };
-
- // 技能相关
- SCCI int maxNumOfSkill = 3;
- SCCI int commonSkillCD = 30000; // 普通技能标准冷却时间
- SCCI int commonSkillTime = 10000; // 普通技能标准持续时间
-
- SCCI int timeOfTrickerStunnedWhenCharge = 7220;
- SCCI int timeOfStudentStunnedWhenCharge = 2090;
-
- SCCI int timeOfTrickerStunnedWhenPunish = 3070;
-
- SCCI int timeOfTrickerSwingingAfterHowl = 800;
- SCCI int timeOfStudentStunnedWhenHowl = 5500;
-
- SCCI int timeOfStunnedWhenJumpyDumpty = 3070;
-
- SCCI double addedTimeOfSpeedWhenInspire = 1.6;
- SCCI int timeOfAddingSpeedWhenInspire = 6000;
-
- SCCI int addHpWhenEncourage = basicHp / 4;
-
- SCCI int checkIntervalWhenShowTime = 200;
- SCCI int addAddictionPer100msWhenShowTime = 300;
- struct CanBeginToCharge
- {
- SCCI int skillCD = commonSkillCD * 2;
- SCCI int durationTime = commonSkillTime * 3 / 10;
- };
-
- struct BecomeInvisible
- {
- SCCI int skillCD = commonSkillCD * 4 / 3;
- SCCI int durationTime = commonSkillTime;
- };
-
- struct Punish
- {
- SCCI int skillCD = commonSkillCD * 3 / 2;
- SCCI int durationTime = commonSkillTime * 0;
- };
-
- struct SparksNSplash
- {
- SCCI int skillCD = commonSkillCD * 3 / 2;
- SCCI int durationTime = commonSkillTime * 1;
- };
-
- struct HaveTea
- {
- SCCI int skillCD = commonSkillCD * 3;
- SCCI int durationTime = commonSkillTime * 0;
- };
-
- struct Rouse
- {
- SCCI int skillCD = commonSkillCD * 4;
- SCCI int durationTime = commonSkillTime * 0;
- };
-
- struct Encourage
- {
- SCCI int skillCD = commonSkillCD * 4;
- SCCI int durationTime = commonSkillTime * 0;
- };
-
- struct Inspire
- {
- SCCI int skillCD = commonSkillCD * 4;
- SCCI int durationTime = commonSkillTime * 0;
- };
-
- struct Howl
- {
- SCCI int skillCD = commonSkillCD * 25 / 30;
- SCCI int durationTime = commonSkillTime * 0;
- };
-
- struct ShowTime
- {
- SCCI int skillCD = commonSkillCD * 8 / 3;
- SCCI int durationTime = commonSkillTime * 1;
- };
-
- struct JumpyBomb
- {
- SCCI int skillCD = commonSkillCD / 2;
- SCCI int durationTime = commonSkillTime * 3 / 10;
- };
-
- struct UseKnife
- {
- SCCI int skillCD = commonSkillCD * 1;
- SCCI int durationTime = commonSkillTime / 10;
- };
-
- struct UseRobot
- {
- SCCI int skillCD = commonSkillCD / 15;
- SCCI int durationTime = commonSkillTime * 0;
- };
-
- struct WriteAnswers
- {
- SCCI int skillCD = commonSkillCD * 1;
- SCCI int durationTime = commonSkillTime * 0;
- };
-
- struct SummonGolem
- {
- SCCI int skillCD = commonSkillCD * 4 / 3;
- SCCI int durationTime = commonSkillTime * 6;
- };
-
- struct CommonAttackOfTricker
- {
- SCCI double BulletBombRange = 0;
- SCCI double BulletAttackRange = basicAttackShortRange;
- SCCI int ap = basicApOfTricker;
- SCCI int Speed = basicBulletMoveSpeed;
- SCCI bool IsRemoteAttack = false;
-
- SCCI int CastTime = (int)BulletAttackRange * 1000 / Speed;
- SCCI int Backswing = basicBackswing;
- SCCI int RecoveryFromHit = basicRecoveryFromHit;
- SCCI int cd = basicBackswing;
- SCCI int maxBulletNum = 1;
- };
-
- struct FlyingKnife
- {
- SCCI double BulletBombRange = 0;
- SCCI double BulletAttackRange = basicRemoteAttackRange * 13;
- SCCI int ap = basicApOfTricker * 4 / 5;
- SCCI int Speed = basicBulletMoveSpeed * 25 / 10;
- SCCI bool IsRemoteAttack = true;
-
- SCCI int CastTime = basicCastTime * 6 / 5;
- SCCI int Backswing = 0;
- SCCI int RecoveryFromHit = 0;
- SCCI int cd = basicBackswing * 3 / 4;
- SCCI int maxBulletNum = 1;
- };
-
- struct BombBomb
- {
- SCCI double BulletBombRange = basicBulletBombRange;
- SCCI double BulletAttackRange = basicAttackShortRange;
- SCCI int ap = basicApOfTricker * 6 / 5;
- SCCI int Speed = basicBulletMoveSpeed * 30 / 37;
- SCCI bool IsRemoteAttack = false;
-
- SCCI int CastTime = (int)BulletAttackRange * 1000 / Speed;
- SCCI int Backswing = basicBackswing * 3 / 2;
- SCCI int RecoveryFromHit = basicRecoveryFromHit;
- SCCI int cd = basicCD;
- SCCI int maxBulletNum = 1;
- };
-
- struct JumpyDumpty
- {
- SCCI double BulletBombRange = basicBulletBombRange / 2;
- SCCI double BulletAttackRange = basicRemoteAttackRange * 2;
- SCCI int ap = (int)(basicApOfTricker * 0.6);
- SCCI int Speed = basicBulletMoveSpeed * 43 / 37;
- SCCI bool IsRemoteAttack = false;
- };
-
- struct Strike
- {
- SCCI double BulletBombRange = 0;
- SCCI double BulletAttackRange = basicAttackShortRange;
- SCCI int ap = basicApOfTricker * 16 / 15;
- SCCI int Speed = basicBulletMoveSpeed * 125 / 148;
- SCCI bool IsRemoteAttack = false;
-
- SCCI int CastTime = basicCastTime * 16 / 25;
- SCCI int Backswing = basicBackswing;
- SCCI int RecoveryFromHit = basicRecoveryFromHit;
- SCCI int cd = basicBackswing;
- SCCI int maxBulletNum = 1;
- };
- } // namespace Constants
- #endif
|