private IEnumerable Intro(Story story, EntityWorld world) { var bgGenerator = ServiceLocator.Instance.GetService<SpaceBackgroundGeneratorService>(); bgGenerator.GenerateBackground(world, 12345); var entity = world.CreateStoryOverlay(Properties.Resources.String_ActOne_Intro01); yield return Coroutine.WaitFor(TimeSpan.FromSeconds(2)); entity.FadeGuiElement(TimeSpan.FromSeconds(1.5), 0) .OnDone = () => entity.Delete(); yield return Coroutine.WaitFor(TimeSpan.FromSeconds(2)); var variant = new ShipVariant { HullId = "Jormugand", TrimDecalColor = Color.Cyan, BaseDecalColor = new Color(212, 113, 108), }; _playerEntity = world.CreateShip(variant, new Vector2(500,0),0, physics:true); _playerEntity.Tag = "PlayerShip"; _playerEntity.Refresh(); var cameraControl = world.SystemManager.GetSystem<Systems.CameraControlSystem>(); cameraControl.Mode = Systems.CameraMode.FollowEntity; cameraControl.FollowedEntity = _playerEntity; var test = world.CreateShip("mobius", new Vector2(0, 0), MathHelper.Pi * 1.5f, physics:true); test.GetComponent<ShipModelComponent>().BaseDecalColor = Color.Khaki; story.State.Fire(Story.Triggers.NextScene); yield return null; }
public override void Process(Entity e) { Transform transform = transformMapper.Get(e); UpdateInput(); if (moveLeft) { transform.AddX(world.GetDelta() * -0.3f); } if (moveRight) { transform.AddX(world.GetDelta() * 0.3f); } if (shoot) { Entity missile = EntityFactory.CreateMissile(world); missile.GetComponent <Transform>().SetLocation(transform.GetX() + 30, transform.GetY() - 20); missile.GetComponent <Velocity>().SetVelocity(-0.5f); missile.GetComponent <Velocity>().SetAngle(90); missile.Refresh(); shoot = false; } }
public override void Process(Entity e) { Transform transform = transformMapper.Get(e); UpdateInput(); if (moveLeft) { transform.X += world.Delta * -0.3f; } if (moveRight) { transform.X += world.Delta * 0.3f; } if (shoot) { Entity missile = EntityFactory.CreateMissile(world); missile.GetComponent <Transform>().SetLocation(transform.X + 30, transform.Y - 20); missile.GetComponent <Velocity>().Speed = -0.5f; missile.GetComponent <Velocity>().Angle = 90; missile.Refresh(); shoot = false; } }
public Entity BuildEntity(Entity et1, EntityWorld world , params object[] args) { et1.AddComponent(new Power()); et1.GetComponent<Power>().POWER = 100; et1.Refresh(); return et1; }
/// <summary>The build entity.</summary> /// <param name="entity">The entity.</param> /// <param name="entityWorld">The entityWorld.</param> /// <param name="args">The args.</param> /// <returns>The <see cref="Entity" />.</returns> public Entity BuildEntity(Entity entity, EntityWorld entityWorld, params object[] args) { entity.AddComponent(new Damage(1f)); entity.Refresh(); return(entity); }
/// <summary> /// Create a Drawlet, which is a moveable, drawable Entity /// </summary> /// <returns></returns> public static Entity CreateDrawlet() { Entity e = CreateGamelet(); e.AddComponent(new DrawComp()); e.Refresh(); return(e); }
/// <summary> /// Quick program to test my navigation stuff /// http://www.ffevo.net/wiki/index.php/FFACETools /// Credits goes to cpirie /// </summary> /// <param name="args"></param> private static void Main(string[] args) { FFXIVLIB instance = new FFXIVLIB(); Entity player = instance.GetEntityInfo(0); while (true) { string sResult = "Heading: "; double degrees = player.Structure.Heading * (180 / Math.PI) + 180; if (degrees > 360) { degrees -= 360; } else if (degrees < 0) { degrees += 360; } sResult += Math.Floor(degrees) + "° "; if (337 < degrees || 23 >= degrees) { sResult += "(N)"; } else if (23 < degrees && 68 >= degrees) { sResult += "(NW)"; } else if (68 < degrees && 113 >= degrees) { sResult += "(W)"; } else if (113 < degrees && 158 >= degrees) { sResult += "(SW)"; } else if (158 < degrees && 203 >= degrees) { sResult += "(S)"; } else if (203 < degrees && 248 >= degrees) { sResult += "(SE)"; } else if (248 < degrees && 293 >= degrees) { sResult += "(E)"; } else if (293 < degrees && 337 >= degrees) { sResult += "(NE)"; } Console.WriteLine("Heading: {0} Deg: {1}, X: {2}, Y: {3}", player.Structure.Heading.ToString(), sResult, player.Structure.X.ToString(), player.Structure.Y.ToString()); player.Refresh(); Thread.Sleep(1000); } // ReSharper disable once FunctionNeverReturns }
/// <summary> /// Create a Gamelet, which is an Entity with position and velocity, but no shape/drawability (yet). /// </summary> /// <returns></returns> public static Entity CreateGamelet() { Entity e = CreateEntity(); e.AddComponent(new PositionComp()); e.AddComponent(new VelocityComp()); e.Refresh(); return(e); }
/// <summary> /// Create a Spritelet, which is a moveable sprite /// </summary> /// <param name="graphicsFile">The content graphics file with or without extension. If /// extension given eg "ball.png", the uncompiled file will be loaded at runtime. If no extension /// given eg "ball", precompiled XNA content will be loaded (.xnb files).</param> /// <returns></returns> public static Entity CreateSpritelet(string graphicsFile) { Entity e = CreateDrawlet(); var spriteComp = new SpriteComp(graphicsFile); e.AddComponent(spriteComp); e.Refresh(); return(e); }
/// <summary>The build entity.</summary> /// <param name="entity">The entity.</param> /// <param name="entityWorld">The entity world.</param> /// <param name="args">The args.</param> /// <returns>The built <see cref="Entity" />.</returns> public Entity BuildEntity(Entity entity, EntityWorld entityWorld, params object[] args) { entity.AddComponent(new TestPowerComponent()); entity.GetComponent <TestPowerComponent>().Power = 100; entity.Refresh(); return(entity); }
public static void multsystem() { healthBag.Clear(); componentPool.Clear(); healthBag.Add(new Health()); healthBag.Add(new Health()); componentPool.Add(typeof(Health), healthBag); Bag <Component> tempBag; EntityWorld world = new EntityWorld(); SystemManager systemManager = world.SystemManager; world.EntityManager.RemovedComponentEvent += new RemovedComponentHandler(RemovedComponent); world.EntityManager.RemovedEntityEvent += new RemovedEntityHandler(RemovedEntity); EntitySystem hs = systemManager.SetSystem(new SingleHealthBarRenderSystem(), ExecutionType.Update); hs = systemManager.SetSystem(new DummySystem(), ExecutionType.Update); hs = systemManager.SetSystem(new DummySystem2(), ExecutionType.Update); hs = systemManager.SetSystem(new DummySystem3(), ExecutionType.Update); systemManager.InitializeAll(); List <Entity> l = new List <Entity>(); for (int i = 0; i < 100000; i++) { Entity et = world.CreateEntity(); et.AddComponent(new Health()); et.GetComponent <Health>().HP += 100; et.Refresh(); l.Add(et); } for (int i = 0; i < 100; i++) { DateTime dt = DateTime.Now; world.LoopStart(); systemManager.UpdateAsynchronous(ExecutionType.Update); //systemManager.UpdateSynchronous(ExecutionType.Update); Console.WriteLine((DateTime.Now - dt).TotalMilliseconds); } //int df = 0; //foreach (var item in l) //{ // if (item.GetComponent<Health>().GetHealth() == 90) // { // df++; // } // else // { // Console.WriteLine("errro"); // } //} }
/// <summary>The build entity.</summary> /// <param name="entity">The entity.</param> /// <param name="entityWorld">The entityWorld.</param> /// <param name="args">The args.</param> /// <returns>The <see cref="Entity" />.</returns> public Entity BuildEntity(Entity entity, EntityWorld entityWorld, params object[] args) { entity.AddComponentFromPool <Position>(); entity.AddComponentFromPool <Pickupable>(); entity.AddComponentFromPool <Appearance>(); entity.GetComponent <Appearance>().Initialize("Images/ManaCrystal.xml"); entity.Refresh(); return(entity); }
protected override void ProcessEntities(Dictionary <int, Entity> entities) { Entity e = EntityFactory.CreateEnemyShip(world); e.GetComponent <Transform>().SetLocation(r.Next(spriteBatch.GraphicsDevice.Viewport.Width), r.Next(400) + 50); e.GetComponent <Velocity>().SetVelocity(0.05f); e.GetComponent <Velocity>().SetAngle(r.Next() % 2 == 0 ? 0 : 180); e.Refresh(); }
public static void Randomize() { Clear(); Sprite startingCells = new Sprite(cells.spriteSheet[0][0].grid); int remainingCells; if (limitRandomizedCells) { remainingCells = (Game.viewport.size.x * Game.viewport.size.y) / 10; } else { remainingCells = (Game.size.x * Game.size.y) / 10; } while (remainingCells > 0) { int y; int x; if (limitRandomizedCells) { y = Tools.rng.Next(Game.viewport.position.y, Game.viewport.position.y + Game.viewport.size.y); x = Tools.rng.Next(Game.viewport.position.x, Game.viewport.position.x + Game.viewport.size.x); } else { y = Tools.rng.Next(0, Game.size.y); x = Tools.rng.Next(0, Game.size.x); } if (startingCells.grid[y][x].background == deadColor) { startingCells.grid[y][x].background = aliveColor; remainingCells -= 1; } } cells.spriteSheet[0][0] = startingCells; cells.Refresh(); }
public Entity BuildEntity(Entity e, params object[] args) { string text = (string)args[0]; Vector2 position = (Vector2)args[1]; float time = 0.9f; e.AddComponent<FadingText>(new FadingText(text, time, position)); e.Refresh(); return e; }
/// <summary> /// Attaches a control to an <see cref="Entity"/> instance, using the specified offset. /// </summary> /// <param name="control">Control instance being attached to the entity.</param> /// <param name="entity">Entity instance to which the control is being attached.</param> /// <param name="offset">Offset from the entity's position to display the control.</param> public static void AttachToEntity(this Control control, Entity entity, Vector2 offset) { ControlComponent controlComponent = new ControlComponent() { Control = control, Offset = offset }; entity.AddComponent <ControlComponent>(controlComponent); entity.Refresh(); }
/// <summary>The build entity.</summary> /// <param name="entity">The entity.</param> /// <param name="entityWorld">The entityWorld.</param> /// <param name="args">The args.</param> /// <returns>The <see cref="Entity" />.</returns> public Entity BuildEntity(Entity entity, EntityWorld entityWorld, params object[] args) { entity.AddComponentFromPool <Enchantment>(); entity.AddComponentFromPool <Team>(); entity.AddComponentFromPool <Position>(); entity.AddComponentFromPool <Appearance>(); entity.Refresh(); return(entity); }
/// <summary>The build entity.</summary> /// <param name="entity">The entity.</param> /// <param name="entityWorld">The entityWorld.</param> /// <param name="args">The args.</param> /// <returns>The <see cref="Entity" />.</returns> public Entity BuildEntity(Entity entity, EntityWorld entityWorld, params object[] args) { entity.AddComponentFromPool <Position>(); entity.AddComponentFromPool <Pickupable>(); entity.GetComponent <Pickupable>().currentValue = 0.2f; entity.GetComponent <Pickupable>().maxValue = 0; entity.AddComponentFromPool <Appearance>(); entity.Refresh(); return(entity); }
/// <summary> /// Creates a Textlet, which is a moveable piece of text. (TODO: font) /// </summary> /// <param name="text"></param> /// <returns></returns> public static Entity CreateTextlet(string text) { Entity e = CreateDrawlet(); e.AddComponent(new ScaleComp()); TextComp tc = new TextComp(text); tc.Font = _game.Content.Load <SpriteFont>("TTDebugFont"); // FIXME allow other fonts e.AddComponent(tc); e.Refresh(); return(e); }
/// <summary> /// Add a Modifier script to an Entity, based on a code block (delegate) and a VectorFunction /// </summary> /// <param name="e">Entity to add modifier script to</param> /// <param name="scriptCode">Code block (delegate) that is the script</param> /// <param name="func">Function whose value will be passed in ScriptContext.FunctionValue to script</param> /// <returns></returns> public static VectorModifierScript AddModifier(Entity e, VectorModifierDelegate scriptCode, IVectorFunction func) { if (!e.HasComponent<ScriptComp>()) { e.AddComponent(new ScriptComp()); e.Refresh(); } var sc = e.GetComponent<ScriptComp>(); var script = new VectorModifierScript(scriptCode, func); sc.Add(script); return script; }
/// <summary>The build entity.</summary> /// <param name="entity">The entity.</param> /// <param name="entityWorld">The entityWorld.</param> /// <param name="args">The args.</param> /// <returns>The <see cref="Entity" />.</returns> public Entity BuildEntity(Entity entity, EntityWorld entityWorld, params object[] args) { entity.AddComponentFromPool <Health>(); entity.AddComponentFromPool <ScreenPosition>(); entity.AddComponentFromPool <PlatformPosition>(); entity.AddComponentFromPool <PlayerNumber>(); entity.AddComponentFromPool <Input>(); entity.Refresh(); return(entity); }
public static void HybridQueueSystemTeste() { EntityWorld world = new EntityWorld(); SystemManager systemManager = world.SystemManager; HybridQueueSystemTest HybridQueueSystemTest = new ArtemisTest.HybridQueueSystemTest(); EntitySystem hs = systemManager.SetSystem(HybridQueueSystemTest, ExecutionType.Update); systemManager.InitializeAll(); List <Entity> l = new List <Entity>(); for (int i = 0; i < 100; i++) { Entity et = world.CreateEntity(); et.AddComponent(new Health()); et.GetComponent <Health>().HP += 100; et.Refresh(); l.Add(et); } for (int i = 0; i < 100; i++) { Entity et = world.CreateEntity(); et.AddComponent(new Health()); et.GetComponent <Health>().HP += 100; HybridQueueSystemTest. AddToQueue(et); l.Add(et); } int j = 0; while (HybridQueueSystemTest.QueueCount > 0) { j++; DateTime dt = DateTime.Now; world.LoopStart(); systemManager.UpdateSynchronous(ExecutionType.Update); Console.WriteLine((DateTime.Now - dt).TotalMilliseconds); } for (int i = 0; i < 100; i++) { Debug.Assert(l[i].GetComponent <Health>().HP == 100 - (10 * j)); } for (int i = 100; i < 200; i++) { Debug.Assert(l[i].GetComponent <Health>().HP == 90); } }
static void multi() { healthBag.Add(new Health()); healthBag.Add(new Health()); componentPool.Add(typeof(Health), healthBag); Bag <Component> tempBag; EntityWorld world = new EntityWorld(); SystemManager systemManager = world.GetSystemManager(); world.GetEntityManager().RemovedComponentEvent += new RemovedComponentHandler(RemovedComponent); world.GetEntityManager().RemovedEntityEvent += new RemovedEntityHandler(RemovedEntity); EntitySystem hs = systemManager.SetSystem(new MultHealthBarRenderSystem(), ExecutionType.Update); //EntitySystem hs = systemManager.SetSystem(new SingleHEAVYHealthBarRenderSystem(),ExecutionType.Update); systemManager.InitializeAll(); List <Entity> l = new List <Entity>(); for (int i = 0; i < 1000; i++) { Entity et = world.CreateEntity(); et.AddComponent(new Health()); et.GetComponent <Health>().AddHealth(100); et.Refresh(); l.Add(et); } for (int i = 0; i < 100; i++) { DateTime dt = DateTime.Now; world.LoopStart(); systemManager.UpdateSynchronous(ExecutionType.Update); Console.WriteLine((DateTime.Now - dt).TotalMilliseconds); } int df = 0; foreach (var item in l) { if (item.GetComponent <Health>().GetHealth() == 90) { df++; } } Console.ReadLine(); }
private void InitPlayerShip() { Entity e = world.CreateEntity(); e.SetGroup("SHIPS"); e.AddComponent(pool.TakeComponent <Transform>()); e.AddComponent(pool.TakeComponent <SpatialForm>()); e.AddComponent(pool.TakeComponent <Health>()); e.GetComponent <SpatialForm>().SetSpatialFormFile("PlayerShip"); e.GetComponent <Health>().SetHealth(30); e.GetComponent <Transform>().SetCoords(new Vector3(GraphicsDevice.Viewport.Width / 2, GraphicsDevice.Viewport.Height - 50, 0)); e.Refresh(); world.GetTagManager().Register("PLAYER", e); }
private void InitEnemyShips() { Random r = new Random(); for (int i = 0; 2 > i; i++) { Entity e = EntityFactory.CreateEnemyShip(world); e.GetComponent <Transform>().SetLocation(r.Next(GraphicsDevice.Viewport.Width), r.Next(400) + 50); e.GetComponent <Velocity>().SetVelocity(0.05f); e.GetComponent <Velocity>().SetAngle(r.Next() % 2 == 0 ? 0 : 180); e.Refresh(); } }
/// <summary>The build entity.</summary> /// <param name="entity">The entity.</param> /// <param name="entityWorld">The entityWorld.</param> /// <param name="args">The args.</param> /// <returns>The <see cref="Entity" />.</returns> public Entity BuildEntity(Entity entity, EntityWorld entityWorld, params object[] args) { entity.AddComponentFromPool <Health>(); entity.AddComponentFromPool <Damage>(); entity.AddComponentFromPool <Team>(); entity.AddComponentFromPool <Position>(); entity.AddComponentFromPool <Velocity>(); entity.AddComponentFromPool <Collision>(); entity.AddComponentFromPool <Appearance>(); entity.AddComponentFromPool <SpawnPoint>(); entity.AddComponentFromPool <StatsDisplay>(); entity.AddComponentFromPool <AI>(); entity.Refresh(); return(entity); }
public override void Process(Entity e) { if (!e.HasComponent<AI>()) return; AI ai = e.GetComponent<AI>(); bool behavior; if (ai.Target != null) { if (World.EntityManager.GetEntity((ai.Target.UserData as Entity).Id) == null) ai.Target = null; else if (!(!ai.Recalculate && ai.Calculated) && ai.Target != null && (ai.Target.UserData as Entity) != null && !(behavior = ai.Behavior(ai.Target))) //Run ai behavior, if behavior returns true look for new target. { ai.Calculated = true; if (ai.Target == null && e.Group != "Players" && e.Group != "Structures" && !e.Tag.Contains("Cannon")) { if (e.HasComponent<Health>()) e.GetComponent<Health>().SetHealth(null, 0); else e.Delete(); } return; } } ai.Calculated = true; ai.Target = _FindNewTarget(ai, e.GetComponent<Body>()); if (ai.Target == null && e.Group != "Players" && e.Group != "Structures" && !e.Tag.Contains("Boss")) { if (e.HasComponent<Health>()) e.GetComponent<Health>().SetHealth(null, 0); else e.Delete(); } else if (ai.Target == null && e.Group == "Players") ai.Behavior(null); e.Refresh(); }
public override void Process(Entity e) { Weapon weapon = weaponMapper.Get(e); long t = weapon.ShotAt + TimeSpan.FromSeconds(2).Ticks; if (t < DateTime.Now.Ticks) { Transform transform = transformMapper.Get(e); Entity missile = EntityFactory.CreateMissile(world); missile.GetComponent <Transform>().SetLocation(transform.X + 20, transform.Y + 20); missile.GetComponent <Velocity>().Speed = -0.5f; missile.GetComponent <Velocity>().Angle = 270; missile.Refresh(); weapon.ShotAt = DateTime.Now.Ticks; } }
public static void SystemComunicationTeste() { EntitySystem.BlackBoard.SetEntry <int>("Damage", 5); EntityWorld world = new EntityWorld(); SystemManager systemManager = world.SystemManager; DummyCommunicationSystem DummyCommunicationSystem = new DummyCommunicationSystem(); systemManager.SetSystem(DummyCommunicationSystem, ExecutionType.Update); systemManager.InitializeAll(); List <Entity> l = new List <Entity>(); for (int i = 0; i < 100; i++) { Entity et = world.CreateEntity(); et.AddComponent(new Health()); et.GetComponent <Health>().HP += 100; et.Refresh(); l.Add(et); } { DateTime dt = DateTime.Now; world.LoopStart(); systemManager.UpdateSynchronous(ExecutionType.Update); Console.WriteLine((DateTime.Now - dt).TotalMilliseconds); } EntitySystem.BlackBoard.SetEntry <int>("Damage", 10); { DateTime dt = DateTime.Now; world.LoopStart(); systemManager.UpdateSynchronous(ExecutionType.Update); Console.WriteLine((DateTime.Now - dt).TotalMilliseconds); } foreach (var item in l) { Debug.Assert(item.GetComponent <Health>().HP == 85); } }
/// <summary>Processes the entities.</summary> /// <param name="entities">The entities.</param> protected override void ProcessEntities(IDictionary <int, Entity> entities) { Bag <Entity> bullets = this.EntityWorld.GroupManager.GetEntities("BULLETS"); Bag <Entity> ships = this.EntityWorld.GroupManager.GetEntities("SHIPS"); if (bullets != null && ships != null) { ///being brutal !!! for (int shipIndex = 0; ships.Count > shipIndex; ++shipIndex) { Entity ship = ships.Get(shipIndex); for (int bulletIndex = 0; bullets.Count > bulletIndex; ++bulletIndex) { Entity bullet = bullets.Get(bulletIndex); if (this.CollisionExists(bullet, ship)) { TransformComponent bulletTransform = bullet.GetComponent <TransformComponent>(); Entity bulletExplosion = this.EntityWorld.CreateEntityFromTemplate(BulletExplosionTemplate.Name); bulletExplosion.GetComponent <TransformComponent>().Position = bulletTransform.Position; bulletExplosion.Refresh(); bullet.Delete(); HealthComponent healthComponent = ship.GetComponent <HealthComponent>(); healthComponent.AddDamage(4); if (!healthComponent.IsAlive) { TransformComponent shipTransform = ship.GetComponent <TransformComponent>(); Entity shipExplosion = this.EntityWorld.CreateEntityFromTemplate(ShipExplosionTemplate.Name); shipExplosion.GetComponent <TransformComponent>().Position = shipTransform.Position; shipExplosion.Refresh(); ship.Delete(); break; } } } } } }
public static void DummyTests() { EntityWorld world = new EntityWorld(); SystemManager systemManager = world.SystemManager; DummyCommunicationSystem DummyCommunicationSystem = new DummyCommunicationSystem(); systemManager.SetSystem(DummyCommunicationSystem, ExecutionType.Update); systemManager.InitializeAll(); for (int i = 0; i < 100; i++) { Entity et = world.CreateEntity(); et.AddComponent(new Health()); et.GetComponent <Health>().HP += 100; et.Group = "teste"; et.Refresh(); } { Entity et = world.CreateEntity("tag"); et.AddComponent(new Health()); et.GetComponent <Health>().HP += 100; et.Refresh(); } { DateTime dt = DateTime.Now; world.LoopStart(); systemManager.UpdateSynchronous(ExecutionType.Update); Console.WriteLine((DateTime.Now - dt).TotalMilliseconds); } Debug.Assert(world.TagManager.GetEntity("tag") != null); Debug.Assert(world.GroupManager.GetEntities("teste").Size == 100); Debug.Assert(world.EntityManager.ActiveEntitiesCount == 101); Debug.Assert(world.SystemManager.Systems.Size == 1); }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[OrderBanKa]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } BanKaOrder BanKaOrder = new BanKaOrder(); BanKaOrder = JsonToObject.ConvertJsonToModel(BanKaOrder, json); if (BanKaOrder.BKTId.IsNullOrEmpty() || BanKaOrder.PayPWD.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (BanKaOrder.PayPWD.Length < 6)//6位及以上 { DataObj.OutError("1000"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == BanKaOrder.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } if (baseUsers.MiBao != 1)//未设置支付密码 { DataObj.OutError("2008"); return; } if (baseUsers.PayLock == 1)//密码错误太多次锁定 { DataObj.OutError("2050"); return; } //这里是执行指纹解锁 bool IfCheckOk = true; if (BanKaOrder.PayPWD.Substring(0, 3) == "HF_") { string PassWord = BanKaOrder.PayPWD; PassWord = PassWord.Replace("HF_", ""); string Token = baseUsers.Token; Token = Token + "GoodPay"; string Md5Token = Token.GetMD5().ToUpper(); string Pass = Md5Token.Substring(0, 4) + Md5Token.Substring(Md5Token.Length - 4, 4); if (Pass != PassWord) { IfCheckOk = false; } } else if (baseUsers.PayPwd != BanKaOrder.PayPWD.GetPayMD5()) { //原支付密码错误 IfCheckOk = false; } if (!IfCheckOk) { //付密码错误 SysSet SysSet = Entity.SysSet.FirstOrNew(); //系统统一修改标识SAME002 baseUsers.PayErr++; if (baseUsers.PayErr >= SysSet.PayLock) { baseUsers.PayLock = 1; } Entity.SaveChanges(); Users Out = new Users(); Out.PayErr = SysSet.PayLock - baseUsers.PayErr; Out.Cols = "PayErr"; DataObj.Data = Out.OutJson(); DataObj.Code = "2010"; DataObj.OutString(); return; } baseUsers.PayErr = 0; //检测是否已经购买过 BanKaOrder BKO = Entity.BanKaOrder.FirstOrDefault(n => n.UId == baseUsers.Id && n.BKTId == BanKaOrder.BKTId && n.OrderState == 2 && n.PayState == 1); if (BKO != null) { DataObj.OutError("6051"); return; } //获取产品 BanKaType BanKaType = Entity.BanKaType.FirstOrDefault(n => n.Id == BanKaOrder.BKTId && n.State == 1); if (BanKaType == null) { DataObj.OutError("1000"); return; } if (BanKaType.Amoney > baseUsers.Amount) {//余额不足 DataObj.OutError("6026"); return; } BanKaOrder.UId = baseUsers.Id; BanKaOrder.Amoney = BanKaType.Amoney; BanKaOrder.OrderState = 1; BanKaOrder.PayState = 0; BanKaOrder.AddTime = DateTime.Now; BanKaOrder.Agent = baseUsers.Agent; BanKaOrder.AId = baseUsers.AId; BanKaOrder.AgentState = 0; //这里是利润计算========== BanKaOrder.AgentGet = 0; BanKaOrder.AIdGet = 0; Entity.BanKaOrder.AddObject(BanKaOrder); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, BanKaOrder); //开始支付流程 //================================================================== //帐户变动记录 int USERSID = baseUsers.Id; string TNUM = BanKaOrder.OId; decimal PAYMONEY = BanKaOrder.Amoney; string SP_Ret = Entity.SP_UsersMoney(USERSID, TNUM, PAYMONEY, 2, BanKaType.Title); if (SP_Ret != "3") { Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", USERSID, TNUM, 2, PAYMONEY, SP_Ret), "SP_UsersMoney"); BanKaOrder.OrderState = 0; Entity.SaveChanges(); DataObj.OutError("8888"); return; } //================================================================== //交易标识 BanKaOrder.OrderState = 2; BanKaOrder.PayState = 1; Entity.SaveChanges(); DataObj.Data = BanKaOrder.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
/// <summary> /// Add a script to an Entity, based on a function (delegate) /// </summary> /// <param name="e">The Entity to add script to</param> /// <param name="scriptCode">Script to run</param> /// <returns>IScript object created from the function</returns> public static BasicScript AddScript(Entity e, ScriptDelegate scriptCode) { if (!e.HasComponent<ScriptComp>()) { e.AddComponent(new ScriptComp()); e.Refresh(); } var sc = e.GetComponent<ScriptComp>(); var script = new BasicScript(scriptCode); sc.Add(script); return script; }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[UsersTrueNameByAPI]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } UserAuth UserAuth = new UserAuth(); UserAuth = JsonToObject.ConvertJsonToModel(UserAuth, json); SysSet SysSet = this.Entity.SysSet.FirstOrNew(); if (!UserAuth.IdentityCode.IsNullOrEmpty()) { var y = UserAuth.IdentityCode.Substring(6, 4); var m = UserAuth.IdentityCode.Substring(10, 2); var d = UserAuth.IdentityCode.Substring(12, 2); var birthday = new DateTime(int.Parse(y), int.Parse(m), int.Parse(d)); var now = DateTime.Now; int age = now.Year - birthday.Year; if (now.Month < birthday.Month || (now.Month == birthday.Month && now.Day < birthday.Day)) { age--; } if (age > SysSet.AuthMaxAge || age < SysSet.AuthMinAge) { DataObj.OutError("1104"); return; } } Users Users = new Users(); Users = JsonToObject.ConvertJsonToModel(Users, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (UserAuth.Token.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (UserAuth.NeekName.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (Users.X.IsNullOrEmpty() || Users.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } string HaoFu_Auth_Open = ConfigurationManager.AppSettings["HaoFu_Auth_Open"].ToString(); //SysSet SysSet = Entity.SysSet.FirstOrNew(); byte CardItemNum = 0; byte CardType = 0; byte UsedCardType = 0; if (Equipment.RqType == "Apple") { CardItemNum = SysSet.IosSet10; if (SysSet.IosSet11 == 0) { CardType = 0; } if (SysSet.IosSet11 == 1) { CardType = 2; } if (SysSet.IosSet11 == 2) { CardType = 1; } } else { CardItemNum = SysSet.ApkSet10; if (SysSet.ApkSet11 == 0) { CardType = 0; } if (SysSet.ApkSet11 == 1) { CardType = 2; } if (SysSet.ApkSet11 == 2) { CardType = 1; } } if (HaoFu_Auth_Open != "true") { CardItemNum = 6;//兼容直连六要素接口 } if (CardItemNum == 6) { if (UserAuth.BankAccount.IsNullOrEmpty() || UserAuth.AccountName.IsNullOrEmpty() || UserAuth.IdentityCode.IsNullOrEmpty() || UserAuth.Mobile.IsNullOrEmpty() || UserAuth.CVV.IsNullOrEmpty() || UserAuth.EndDate.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } CardType = 2;//六要素一定是信用卡 } else if (CardItemNum == 4) { if (UserAuth.BankAccount.IsNullOrEmpty() || UserAuth.AccountName.IsNullOrEmpty() || UserAuth.IdentityCode.IsNullOrEmpty() || UserAuth.Mobile.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } } else if (CardItemNum == 3) { if (UserAuth.BankAccount.IsNullOrEmpty() || UserAuth.AccountName.IsNullOrEmpty() || UserAuth.IdentityCode.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } } else { DataObj.OutError("1000"); return; } Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == UserAuth.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1) { DataObj.OutError("2003"); return; } if (baseUsers.CardStae == 2) //已实名认证 { DataObj.OutError("2007"); return; } int CardIdCount = Entity.Users.Count(n => n.CardId == UserAuth.IdentityCode && n.CardStae == 2); if (CardIdCount > 0) //身份证已用过 { DataObj.OutError("2020"); return; } //验证账号是否被限制 if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == baseUsers.UserName && UBL.State == 1) != null) { //提示暂不支持您入网 DataObj.OutError("2027"); return; } //验证身份证是否被限制 if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == UserAuth.IdentityCode && UBL.State == 2) != null) { //提示暂不支持您入网 DataObj.OutError("2027"); return; } //验证银行卡是否被限制 if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == UserAuth.BankAccount && UBL.State == 3) != null) { //提示暂不支持您入网 DataObj.OutError("2027"); return; } //2016-10-07 非法关键词限制 if (!SysSet.NoWord.IsNullOrEmpty()) { string NeekName = Users.NeekName; NeekName = NeekName.Replace(" ", "").Replace(" ", ""); string[] NoWord = SysSet.NoWord.Split('|'); bool hasNoWord = false; string noword = ""; foreach (var p in NoWord) { if (NeekName.Contains(p)) { hasNoWord = true; noword = p; break; } } if (hasNoWord) { DataObj.Msg = "禁止使用关键词“" + noword + "”"; DataObj.OutError("2025"); return; } } //2016-09-30 限制重名提交 Users tempUsers = Entity.Users.FirstOrDefault(n => n.NeekName == Users.NeekName && n.State == 1 && (n.CardStae == 2 || n.CardStae == 1)); if (tempUsers != null) { DataObj.OutError("2024"); return; } int Count = Entity.UserAuth.Count(n => n.UId == baseUsers.Id && n.IsCharge == 1); if (Count >= SysSet.AuthTimes) { DataObj.OutError("2022"); return; } if (!UserAuth.EndDate.IsNullOrEmpty()) { //处理年月问题传上来是MMYY //20151112调整成YYMM if (UserAuth.EndDate.Length == 4) { string MM = UserAuth.EndDate.Substring(0, 2); string YY = UserAuth.EndDate.Substring(2, 2); UserAuth.EndDate = YY + MM; } } UserAuth.AddTime = DateTime.Now; UserAuth.UId = baseUsers.Id; UserAuth.IsCharge = 0; Entity.UserAuth.AddObject(UserAuth); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, UserAuth); #region 贴牌配置 int ApkSet3 = SysSet.ApkSet3; int IosSet3 = SysSet.IosSet3; var vSysAgent = Entity.SysAgent.FirstOrDefault(o => o.Id == baseUsers.Agent); if (vSysAgent == null) { DataObj.OutError("1000"); return; } var topSysAgent = vSysAgent.GetTopAgent(Entity); if (topSysAgent != null && topSysAgent.IsTeiPai == 1) { ApkSet3 = topSysAgent.Set3; IosSet3 = topSysAgent.Set3; } #endregion #region 激活码逻辑 Card Card = null; bool IsCheckCard = false; //必填 if ((ApkSet3 == 1 && this.Equipment.RqType == "Android") || (IosSet3 == 1 && this.Equipment.RqType == "Apple")) { IsCheckCard = true; if (UserAuth.CardNum.IsNullOrEmpty() || UserAuth.CardPWD.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } } //选填 if ((ApkSet3 == 3 && this.Equipment.RqType == "Android") || (IosSet3 == 3 && this.Equipment.RqType == "Apple")) { if (!UserAuth.CardNum.IsNullOrEmpty() && !UserAuth.CardPWD.IsNullOrEmpty()) { IsCheckCard = true; } } if (IsCheckCard) { Card = Entity.Card.FirstOrDefault(n => n.Code == UserAuth.CardNum && n.PasWd == UserAuth.CardPWD && n.Auto == 1); if (Card == null) { DataObj.OutError("5001"); return; } if (Card.State != 1) { string StateStr = string.Empty; switch (Card.State) { case 2: StateStr = "已授权"; break; case 3: StateStr = "已使用"; break; case 0: StateStr = "已失效"; break; } DataObj.Msg = "激活码" + StateStr; DataObj.OutError("5001"); return; } if (Card.AId.IsNullOrEmpty()) { DataObj.OutError("5002"); return; } if (Card.AdminId.IsNullOrEmpty()) { DataObj.OutError("5002"); return; } Card.State = 3;//使用中 baseUsers.CardNum = Card.Code; } #endregion string ret_code = ""; string ret_msg = ""; string isCharge = ""; string CONTENT = ""; #region 第三方接口查询 if (HaoFu_Auth_Open == "true") { if (CardItemNum != 6) { UsedCardType = GetCardType(UserAuth.BankAccount); if (CardType == 1)//要求借记卡 { if (UsedCardType != 1) { DataObj.OutError("2023"); Utils.WriteLog(CardType + "===" + UsedCardType + "无法查询的卡:" + UserAuth.BankAccount, "bankcard"); return; } } if (CardType == 2)//要求信用卡 { if (UsedCardType != 2) { DataObj.OutError("2023"); Utils.WriteLog(CardType + "===" + UsedCardType + "无法查询的卡:" + UserAuth.BankAccount, "bankcard"); return; } } } else { UsedCardType = 2; } string HaoFu_Auth_MerId = ConfigurationManager.AppSettings["HaoFu_Auth_MerId"].ToString(); string HaoFu_Auth_MerKey = ConfigurationManager.AppSettings["HaoFu_Auth_MerKey"].ToString(); string HaoFu_Auth_Url = ConfigurationManager.AppSettings["HaoFu_Auth_Url"].ToString(); string data = "{\"action\":\"authuser\",\"merid\":\"" + HaoFu_Auth_MerId + "\",\"orderid\":\"" + UserAuth.OId + "\",\"bankaccount\":\"" + UserAuth.BankAccount + "\",\"accountname\":\"" + UserAuth.AccountName + "\",\"identitycode\":\"" + UserAuth.IdentityCode + "\",\"mobile\":\"" + UserAuth.Mobile + "\",\"cvv\":\"" + UserAuth.CVV + "\",\"enddate\":\"" + UserAuth.EndDate + "\"}"; string DataBase64 = LokFuEncode.Base64Encode(data, "utf-8"); string Sign = (DataBase64 + HaoFu_Auth_MerKey).GetMD5(); DataBase64 = HttpUtility.UrlEncode(DataBase64, Encoding.UTF8); string postdata = "req=" + DataBase64 + "&sign=" + Sign; CONTENT = Utils.PostRequest(HaoFu_Auth_Url, postdata, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(CONTENT); } catch (Exception Ex) { Log.Write("[UsersTrueNameByAPI]:", "【CONTENT】" + CONTENT, Ex); } if (JS == null) { DataObj.OutError("2021"); return; } string resp = JS["resp"].ToString(); CONTENT = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(CONTENT); } catch (Exception Ex) { Log.Write("[UsersTrueNameByAPI]:", "【CONTENT2】" + CONTENT, Ex); } if (JS == null) { DataObj.OutError("2021"); return; } ret_code = JS["respcode"].ToString(); ret_msg = JS["respmsg"].ToString(); if (JS["ischarge"] != null) { isCharge = JS["ischarge"].ToString(); } if (isCharge == "1") { UserAuth.IsCharge = 1; } else { UserAuth.IsCharge = 0; } } #endregion #region 审核处理 UserAuth.RetCode = ret_code; UserAuth.RetMsg = ret_msg; UserAuth.RetLog = CONTENT; baseUsers.TrueName = UserAuth.AccountName; baseUsers.NeekName = UserAuth.NeekName; baseUsers.CardId = UserAuth.IdentityCode; baseUsers.CardFace = ""; baseUsers.CardType = 1; if (UsedCardType == 2) { baseUsers.HasT0 = 1; } else { baseUsers.HasT0 = 0; } string Code = "0000"; if (ret_code == "0000") { baseUsers.CardStae = 2;//直接审核通过 //======================================= string GPSAddress = Users.RegAddress; if (GPSAddress.IsNullOrEmpty()) { GPSAddress = Utils.GetAddressByGPS(Users.X, Users.Y); } if (!GPSAddress.IsNullOrEmpty()) { baseUsers.RegAddress = GPSAddress; baseUsers.X = Users.X; baseUsers.Y = Users.Y; } //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = "自动认证"; UserTrack.GPSAddress = GPSAddress; UserTrack.GPSX = Users.X; UserTrack.GPSY = Users.Y; baseUsers.SeavGPSLog(UserTrack, Entity); //======================================= //20151125需要对有绑卡的用户验证是否是来源与推广,增加抽奖次数 #region 人推广 if (!baseUsers.MyPId.IsNullOrEmpty()) { if (baseUsers.ShareType == 2) { //支付通道升级推广 PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == baseUsers.PayConfigId && n.State == 1 && n.ShareNumber > 0); if (PCC != null) { int count = Entity.Users.Count(n => n.CardStae == 2 && n.State == 1 && n.MyPId == baseUsers.MyPId && n.PayConfigId == baseUsers.PayConfigId && n.Id != baseUsers.Id); count++; //这里统计会漏掉当前用户的,需要增加1个。 if (count == PCC.ShareNumber) //相等的那一次调整,避免超出了还一直调整 { Users UP = Entity.Users.FirstOrDefault(n => n.Id == baseUsers.MyPId); if (PCC.CState == 1) { if (UP.Cash0 > PCC.Cash0) { UP.Cash0 = PCC.Cash0; } if (UP.ECash0 > PCC.ECash0) { UP.ECash0 = PCC.ECash0; } } if (PCC.EState == 1) { if (UP.Cash1 > PCC.Cash1) { UP.Cash1 = PCC.Cash1; } if (UP.ECash1 > PCC.ECash1) { UP.ECash1 = PCC.ECash1; } } IList <UserPay> List = Entity.UserPay.Where(n => n.UId == baseUsers.MyPId).ToList();//获取用户配置 foreach (var p in List) { PayConfigTemp PCT = Entity.PayConfigTemp.FirstOrDefault(n => n.PId == p.PId && n.PCCId == PCC.Id); //获取套餐配置 if (PCT != null) { if (PCT.State == 1) { if (p.Cost > PCT.Cost) { p.Cost = PCT.Cost; } } } } string UserPayCashName = "UserPay_" + UP.Id.ToString() + "_" + Equipment.RqType; CacheBuilder.EntityCache.Remove(UserPayCashName, null); string PayConfigChangeCashName = "PayConfigChange_" + UP.Agent + "_" + UP.Id; CacheBuilder.EntityCache.Remove(PayConfigChangeCashName, null); //Utils.WriteLog("UserPayCashName:" + UserPayCashName + " PayConfigChangeCashName:" + PayConfigChangeCashName, "ClearCache"); } } } if (baseUsers.ShareType == 1) { //增加推广抽奖次数 TurnUsers TurnUsers = Entity.TurnUsers.FirstOrNew(n => n.UId == baseUsers.MyPId); if (!TurnUsers.Id.IsNullOrEmpty()) { TurnUsers.Times++; } } #region 分享统计数 //===================================增加分享统计数=================================== //获取用户所属各级分润配置 // IList<UserPromoteGet> UserPromoteGetList = Entity.UserPromoteGet.Where(n => n.AgentID == baseUsers.Agent).OrderBy(n => n.PromoteLevel).ToList(); int MaxLevel = SysSet.GlobaPromoteMaxLevel; //获取用户各级关系,最大级不超过用户配置级数。返回数据包含当前用户,当前用户级数标识Tier为0 IList <Users> UsersList = baseUsers.GetUsersById(Entity, MaxLevel); foreach (var U in UsersList.Where(n => n.Tier > 0)) { ShareTotal ShareTotal = Entity.ShareTotal.FirstOrDefault(n => n.UId == U.Id && n.Tier == U.Tier); if (ShareTotal == null) { ShareTotal = new ShareTotal(); ShareTotal.UId = U.Id; ShareTotal.AddTime = DateTime.Now; ShareTotal.ShareNum = 1; ShareTotal.Amount = 0; ShareTotal.Profit = 0; ShareTotal.Tier = U.Tier; Entity.ShareTotal.AddObject(ShareTotal); } else { ShareTotal.ShareNum += 1; } Entity.SaveChanges(); } //===================================增加分享统计数 End=================================== #endregion } #endregion if (Card != null) { //代理商信息 baseUsers.Agent = Card.AId; baseUsers.AId = Card.AdminId; //推广信息 if (!Card.PUId.IsNullOrEmpty()) { if (baseUsers.MyPId.IsNullOrEmpty()) { //不是费率升级推广才有效 baseUsers.MyPId = Card.PUId; baseUsers.PayConfigId = 0; baseUsers.ShareType = 1; } } Card.State = 2; } } else { Code = "2021"; baseUsers.CardStae = 3;//审核失败 baseUsers.CardNum = ""; if (Card != null) { Card.State = 1; } } Entity.SaveChanges(); #endregion DataObj.Data = UserAuth.OutJson(); DataObj.Code = Code; DataObj.OutString(); }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[OrderPayConfig]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } PayConfigOrder PayConfigOrder = new PayConfigOrder(); PayConfigOrder = JsonToObject.ConvertJsonToModel(PayConfigOrder, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (PayConfigOrder.PCCId.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (PayConfigOrder.X.IsNullOrEmpty() || PayConfigOrder.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == PayConfigOrder.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } if (baseUsers.MiBao != 1)//未设置支付密码 { DataObj.OutError("2008"); return; } //获取分支机构信息 SysAgent SysAgent = new SysAgent(); if (!baseUsers.Agent.IsNullOrEmpty()) { SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent); } //获取系统配置 //SysSet SysSet = Entity.SysSet.FirstOrDefault(); PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == PayConfigOrder.PCCId); if (PCC == null) { DataObj.OutError("1001"); return; } PayConfigOrder.UId = baseUsers.Id; PayConfigOrder.Agent = baseUsers.Agent; PayConfigOrder.AId = baseUsers.AId; PayConfigOrder.Amoney = PCC.BPrice.GetValueOrDefault(); PayConfigOrder.OrderState = 1; PayConfigOrder.PayState = 0; PayConfigOrder.AddTime = DateTime.Now; //这里是利润计算========== //分支机构提成=产品价格-代理商价格 decimal GetAll = PCC.BPrice.GetValueOrDefault() - PCC.CPrice.GetValueOrDefault(); //利润舍位 GetAll = GetAll.Floor(); //总利润 PayConfigOrder.AIdGet = (double)GetAll; //分支机构佣金设置为0,待分润计算后再写入 PayConfigOrder.AgentGet = 0; PayConfigOrder.AgentState = 0; //这里暂时写0,等后面支付再重新计算 PayConfigOrder.SysRate = 0; PayConfigOrder.Poundage = PayConfigOrder.Amoney * (decimal)PayConfigOrder.SysRate; //写入订单总表 Orders Orders = new Orders(); Orders.UId = PayConfigOrder.UId; Orders.TName = PCC.Title; Orders.PayType = 0; Orders.PayName = "升级费率"; Orders.RUId = 0; Orders.RName = string.Empty; Orders.TType = 6; Orders.TState = 1; Orders.Amoney = PayConfigOrder.Amoney; Orders.Poundage = PayConfigOrder.Poundage; Orders.AddTime = DateTime.Now; Orders.PayState = 0; Orders.PayWay = 0; Orders.Agent = PayConfigOrder.Agent; Orders.AgentState = 0; Orders.AId = PayConfigOrder.AId; Orders.FId = 0; string OrderAddress = PayConfigOrder.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(PayConfigOrder.X, PayConfigOrder.Y); } Orders.OrderAddress = OrderAddress; Orders.X = PayConfigOrder.X; Orders.Y = PayConfigOrder.Y; Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); PayConfigOrder.OId = Orders.TNum; Entity.PayConfigOrder.AddObject(PayConfigOrder); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; Orders.SeavGPSLog(UserTrack, Entity); //======================================= Orders.SendMsg(Entity);//发送消息类 //======================================= Orders.Cols = "TNum,PayId,Amount,PayState"; string TNum = Orders.TNum; string Sign = (TNum + "NewPay").GetMD5().Substring(8, 8); Orders.PayId = PayPath + "/pay/" + TNum + ".html?sign=" + Sign; //======================================= //获取最佳支付通道 IList <PayConfig> PayConfigList = Entity.PayConfig.Where(n => n.State == 1).OrderBy(n => n.Cost).ToList(); IList <SysControl> SysControlList = Entity.SysControl.OrderBy(n => n.Sort).ToList();//SysControl IList <SysControl> SCList = new List <SysControl>(); IList <PayConfig> PCList = new List <PayConfig>(); foreach (var p in SysControlList) { SysControl T = p.ChkState(); if (T.State == 1) { SCList.Add(p); } } foreach (var p in PayConfigList) { SysControl T = SCList.FirstOrDefault(n => n.PayWay == p.Id); if (T != null) { if (PayConfigOrder.Amoney >= (decimal)T.SNum && PayConfigOrder.Amoney <= (decimal)T.ENum) { PCList.Add(p); } } } IList <PayConfig> CashList = PCList.Where(n => n.GroupType == "Cash").OrderBy(n => n.Cost).ToList(); IList <PayConfig> BankList = PCList.Where(n => n.GroupType == "Bank").OrderBy(n => n.Cost).ToList(); IList <PayConfig> WxList = PCList.Where(n => n.GroupType == "WeiXin").OrderBy(n => n.Cost).ToList(); IList <PayConfig> AliList = PCList.Where(n => n.GroupType == "AliPay").OrderBy(n => n.Cost).ToList(); IList <PayConfig> List = new List <PayConfig>(); if (CashList.Count > 0) { PayConfig Cash = new PayConfig(); Cash.GroupType = "Cash"; Cash.Name = "余额支付"; Cash.State = 1; Cash.Cols = "Name,GroupType,State"; List.Add(Cash); } if (BankList.Count > 0) { PayConfig Bank = new PayConfig(); Bank.GroupType = "Bank"; Bank.Name = "银联支付"; Bank.State = 1; Bank.Cols = "Name,GroupType,State"; List.Add(Bank); } //if (WxList.Count > 0) //{ // PayConfig Wx = new PayConfig(); // Wx.GroupType = "WeiXin"; // Wx.Name = "微信支付"; // Wx.State = 0; // Wx.Cols = "Name,GroupType,State"; // List.Add(Wx); //} if (AliList.Count > 0) { PayConfig Ali = new PayConfig(); Ali.GroupType = "AliPay"; Ali.Name = "支付宝支付"; Ali.State = 1; Ali.Cols = "Name,GroupType,State"; List.Add(Ali); } string PCString = List.EntityToJson(); JArray PCJson = (JArray)JsonConvert.DeserializeObject(PCString); Orders.PayConfig = PCJson; Orders.Cols += ",PayConfig"; //Orders.paycon DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
private void AddEditorComponentsToPartEntity(Entity entity) { entity.AddComponent(new EditorComponent()); var select = new BoundingBoxSelectorComponent() { IsEnabled = false }; entity.AddComponent(select); var drawbounds = new DrawBoundingBoxComponent(); drawbounds.IsEnabled = false; entity.AddComponent(drawbounds); select.SelectedChanged += (s, e) => { drawbounds.IsEnabled = select.IsSelected; if (!select.IsSelected) entity.RemoveComponent<MouseControlledTransformComponent>(); }; entity.AddComponent(entity.GetComponent<IShipPartComponent>().Part.Transform); if (entity.HasComponent<DummyPartComponent>()) { entity.AddComponent(new GenericDrawableComponent((a, b, e) => { var xform = e.GetComponent<Transform>(); b.DrawCircle(xform.Position, 9, 15, Color.Cyan); b.DrawLine(xform.Position.X - 10, xform.Position.Y, xform.Position.X + 10, xform.Position.Y, Color.LightCyan); b.DrawLine(xform.Position.X, xform.Position.Y - 10, xform.Position.X, xform.Position.Y + 10, Color.LightCyan); })); } entity.Refresh(); }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[OrderDaiLi_3_0]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } DaiLiOrder DaiLiOrder = new DaiLiOrder(); DaiLiOrder = JsonToObject.ConvertJsonToModel(DaiLiOrder, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); //设置开通等级 if (DaiLiOrder.Tier.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (DaiLiOrder.X.IsNullOrEmpty() || DaiLiOrder.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == DaiLiOrder.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } if (baseUsers.MiBao != 1)//未设置支付密码 { DataObj.OutError("2008"); return; } //获取分支机构信息 //AgentType AgentType = Entity.AgentType.FirstOrNew(n => n.Id == DaiLiOrder.Levels); //if (AgentType.Id.IsNullOrEmpty()) { // DataObj.OutError("1000"); // return; //} //if (AgentType.AgentID != baseUsers.Agent) { // //用户代理与开通等级代理不同 // DataObj.OutError("1000"); // return; //} SysAgent SysAgent = Entity.SysAgent.FirstOrNew(o => o.LinkMobile == baseUsers.UserName); if (!SysAgent.LinkMobile.IsNullOrEmpty()) { if (SysAgent.Tier < 5 || DaiLiOrder.Tier >= SysAgent.Tier) { DataObj.OutError("9000"); return; } } DaiLiOrder.UId = baseUsers.Id; DaiLiOrder.UserName = baseUsers.UserName; DaiLiOrder.TureName = baseUsers.TrueName; DaiLiOrder.Agent = baseUsers.Agent; DaiLiOrder.AId = baseUsers.AId; // DaiLiOrder.Amoney = AgentType.RegisterFee; DaiLiOrder.OrderState = 1; DaiLiOrder.PayState = 0; DaiLiOrder.AddTime = DateTime.Now; DaiLiOrder.SameGet = 0; //这里是利润计算========== DaiLiOrder.AIdGet = Convert.ToDouble(DaiLiOrder.Amoney); //总利润 DaiLiOrder.AgentGet = 0; //分支机构佣金设置为0,待分润计算后再写入 DaiLiOrder.AgentState = 0; //写入订单总表 Orders Orders = new Orders(); Orders.UId = DaiLiOrder.UId; Orders.TName = "自助开通代理"; Orders.RUId = 0; Orders.RName = string.Empty; Orders.TType = 10; Orders.TState = 1; Orders.Amoney = DaiLiOrder.Amoney; Orders.Poundage = 0; Orders.AddTime = DateTime.Now; Orders.PayState = 0; Orders.PayWay = 15; Orders.Agent = DaiLiOrder.Agent; Orders.AgentState = 0; Orders.AId = DaiLiOrder.AId; Orders.FId = 0; string OrderAddress = DaiLiOrder.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(DaiLiOrder.X, DaiLiOrder.Y); } Orders.OrderAddress = OrderAddress; Orders.X = DaiLiOrder.X; Orders.Y = DaiLiOrder.Y; Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); DaiLiOrder.OId = Orders.TNum; Entity.DaiLiOrder.AddObject(DaiLiOrder); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; Orders.SeavGPSLog(UserTrack, Entity); //======================================= Orders.SendMsg(Entity);//发送消息类 //======================================= Orders.Cols = "TNum,PayId,Amoney,PayState"; string TNum = Orders.TNum; string Sign = (TNum + "NewPay").GetMD5().Substring(8, 8); // Orders.PayId = PayPath + "/pay/" + TNum + ".html?sign=" + Sign; Orders.PayId = PayPath + "/mobile/orders/GoPay.html?sign=" + Sign + "&tnum=" + TNum; //======================================= //获取最佳支付通道 #region 结算中心 //IList<PayConfig> PayConfigList = Entity.PayConfig.Where(n => n.State == 1).OrderBy(n => n.Cost).ToList(); //IList<SysControl> SysControlList = Entity.SysControl.OrderBy(n => n.Sort).ToList();//SysControl //IList<SysControl> SCList = new List<SysControl>(); //IList<PayConfig> PCList = new List<PayConfig>(); //foreach (var p in SysControlList) //{ // SysControl T = p.ChkState(); // if (T.State == 1) // { // SCList.Add(p); // } //} //foreach (var p in PayConfigList) //{ // SysControl T = SCList.FirstOrDefault(n => n.PayWay == p.Id); // if (T != null) // { // if (Orders.Amoney >= (decimal)T.SNum && Orders.Amoney <= (decimal)T.ENum) // { // PCList.Add(p); // } // } //} //IList<PayConfig> CashList = PCList.Where(n => n.GroupType == "Cash").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> BankList = PCList.Where(n => n.GroupType == "Bank").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> WxList = PCList.Where(n => n.GroupType == "WeiXin").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> AliList = PCList.Where(n => n.GroupType == "AliPay").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> List = new List<PayConfig>(); //if (CashList.Count > 0) //{ // PayConfig Cash = new PayConfig(); // Cash.GroupType = "Cash"; // Cash.Name = "余额支付"; // Cash.State = 1; // Cash.Cols = "Name,GroupType,State"; // List.Add(Cash); //} //if (BankList.Count > 0) //{ // PayConfig Bank = new PayConfig(); // Bank.GroupType = "Bank"; // Bank.Name = "银联支付"; // Bank.State = 1; // Bank.Cols = "Name,GroupType,State"; // List.Add(Bank); //} //if (WxList.Count > 0) //{ // PayConfig Wx = new PayConfig(); // Wx.GroupType = "WeiXin"; // Wx.Name = "微信支付"; // Wx.State = 0; // Wx.Cols = "Name,GroupType,State"; // List.Add(Wx); //} //if (AliList.Count > 0) //{ // PayConfig Ali = new PayConfig(); // Ali.GroupType = "AliPay"; // Ali.Name = "支付宝支付"; // Ali.State = 1; // Ali.Cols = "Name,GroupType,State"; // List.Add(Ali); //} //string PCString = List.EntityToJson(); //JArray PCJson = (JArray)JsonConvert.DeserializeObject(PCString); //Orders.PayConfig = PCJson; //Orders.Cols += ",PayConfig"; #endregion //Orders.paycon DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
/// <summary> /// Builds the crystal at a specified position and a color. /// </summary> /// <param name="e"></param> /// <param name="args">[0] = position; [1] = color; [2] amount</param> /// <returns></returns> public Entity BuildEntity(Entity e, params object[] args) { Vector2 pos = (Vector2)args[0]; Color color = (Color)args[1]; string source = "redcrystal"; e.AddComponent<Components.Timer>(new Components.Timer(10)); if (color == Color.Red) source = "redcrystal"; if (color == Color.Blue) source = "bluecrystal"; if (color == Color.Yellow) source = "yellowcrystal"; if (color == Color.Green) source = "greencrystal"; if (color == Color.Gray) source = "graycrystal"; Sprite s = e.AddComponent<Sprite>(new Sprite(_SpriteSheet, source, 0.2f + (float)crystals / 10000f)); Body b = e.AddComponent<Body>(new Body(_World, e)); b.IsBullet = true; FixtureFactory.AttachEllipse((float)ConvertUnits.ToSimUnits(s.CurrentRectangle.Width / 1.5), (float)ConvertUnits.ToSimUnits(s.CurrentRectangle.Height / 1.5), 3, 1f, b); b.Position = pos; b.BodyType = GameLibrary.Dependencies.Physics.Dynamics.BodyType.Dynamic; e.GetComponent<Body>().OnCollision += LambdaComplex.CrystalCollision(); if (args.Length > 4) { e.AddComponent<Crystal>(new Crystal(color, (int)args[2], true)); e.AddComponent<AI>(new AI((args[3] as Entity).GetComponent<Body>(), AI.CreateFollow(e, 5f, false))); } else if (args.Length > 3) { e.AddComponent<Crystal>(new Crystal(color, (int)args[2])); e.AddComponent<AI>(new AI((args[3] as Entity).GetComponent<Body>(), AI.CreateFollow(e, 5f, false))); } else { e.AddComponent<Crystal>(new Crystal(color, (int)args[2])); } e.Group = "Crystals"; e.AddComponent<AI>(new AI((args[3] as Entity).GetComponent<Body>(), //AI was severely lagging the game. (target) => { if ((target.UserData as Entity).HasComponent<Health>() && (target.UserData as Entity).GetComponent<Health>().IsAlive && target.Position != b.Position && (target.UserData as Entity).Group == "Players") { Vector2 distance = target.Position - b.Position; distance.Normalize(); b.LinearVelocity = distance * new Vector2(14); return false; } else { e.Delete(); return false; } })); e.Refresh(); return e; }
public override void Process(Entity entity) { if (!entity.HasComponent<TimeStamp>()) { Int32 unixTimestamp = (Int32)(DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; entity.AddComponent(new TimeStamp(unixTimestamp)); entity.Refresh(); } }
/// <summary> /// Builds all of the entities in the SpaceWorld. /// </summary> /// <param name="Content"></param> /// <param name="args">{0-4} Player indices in use.</param> protected override void BuildEntities(ContentManager Content, params object[] args) { Indices.Clear(); //Set up player(s) PlayerIndex[] index = args[0] as PlayerIndex[]; DirectorSystem.PlayerIndicies = index; for (int i = 0; i < 4; ++i) { if (i < index.Length) { Entity e = CreateEntity("Player", index[i]); Body bitch = e.GetComponent<Body>(); e.Refresh(); e.GetComponent<Inventory>().YELLOW = 50; Player.Add(e); Indices.Add(index[i]); ++Players; } else { Entity e = CreateEntity("Player", (PlayerIndex)(i), true); Body bitch = e.GetComponent<Body>(); e.Refresh(); e.GetComponent<Inventory>().YELLOW = 50; Player.Add(e); ++Players; } } CreateEntityGroup("StarField", "Stars"); //Set up base. Base = this.CreateEntity("Base"); Base.Refresh(); SpawnState[] states = args[2] as SpawnState[]; enemySpawnSystem.LoadContent(Base, Player.ToArray(), level, states); }