123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- import { ObjectValueType } from "./BattleEnum";
- export namespace BattleUtil {
- //背包容量
- export const BagListSize = 15;
- export const AttackListSize = 10;
- //战斗辅助工具类
- export const FrameRate = 30; //帧率
- export const FrameTime = 1 / FrameRate; //帧间隔
- export const PI = 3.1415926; //圆周率
- export const TurnMax = 10*60*FrameRate; //回合数
- //特殊的类型id
- export const TypeID_Init = -1; //初始化id
- export const TypeID_Player = -2; //玩家操作生成的id
- export const PosID_Init = -1; //初始化id
- export const IndexID_Init = -1; //初始化id
- //二维向量
- export class Vector2{
- x: number;
- y: number;
- constructor(x:number,y:number){
- this.x = x;
- this.y = y;
- }
- static Sub(vec:Vector2,vec2:Vector2){
- return new Vector2(vec.x - vec2.x,vec.y - vec2.y);
- }
- static Add(vec:Vector2,vec2:Vector2){
- return new Vector2(vec.x + vec2.x,vec.y + vec2.y);
- }
- static Multiply(vec:Vector2,number:number){
- return new Vector2(vec.x * number,vec.y * number);
- }
- static Divide(vec:Vector2,number:number){
- return new Vector2(vec.x / number,vec.y / number);
- }
- sub(vec:Vector2){
- this.x -= vec.x;
- this.y -= vec.y;
- }
- add(vec:Vector2){
- this.x += vec.x;
- this.y += vec.y;
- }
- multiply(number:number){
- this.x *= number;
- this.y *= number;
- }
- divide(number:number){
- this.x /= number;
- this.y /= number;
- }
- normalize(){
- let len = this.length();
- this.x /= len;
- this.y /= len;
- }
- length(){
- return Math.sqrt(this.x * this.x + this.y * this.y);
- }
- clone(){
- return new Vector2(this.x,this.y);
- }
- }
- // 在服务器端或客户端
- // import { Random } from './random';
- // const seed = 12345;
- // const random = new Random(seed);
- // const randomNum = random.nextInt(1, 100);
- // console.log(randomNum);
- export class Random {
- private seed: number;
- private a: number;
- private c: number;
- private m: number;
- constructor(seed: number) {
- this.seed = seed;
- this.a = 1664525;
- this.c = 1013904223;
- this.m = Math.pow(2, 32);
- }
- next(): number {
- this.seed = (this.a * this.seed + this.c) % this.m;
- return this.seed / this.m;
- }
- nextInt(min: number, max: number): number {
- return min + Math.floor(this.next() * (max - min + 1));
- }
- }
- //特殊数值
- export interface SpecialValue{
- attackType: ObjectValueType;
- value: number;
- }
- //英雄参数变化
- export interface HeroDataChange{
- //英雄id 交换位置和主将技能时无hero
- heroID?: number;
- changeType: ObjectValueType;
- changeValueLlist: number[];
- };
- //敌人出生结构
- export class EnemyBornData{
- //出生时间
- bornTime:number;
- //出生点id
- positionID:number;
- //敌人类型id
- typeID:number;
- //等级
- level:number;
- //路线
- roldID:number;
- }
-
- }
|