public static void CheckBulletWithMap(LVector2Int iPos, GameEntity entity, IGameAudioService audioService, IMap2DService map2DService) { var unit = entity.unit; var bullet = entity.bullet; var id = map2DService.Pos2TileId(iPos, false); if (id != 0 && unit.health > 0) { //collide bullet with world if (id == TilemapUtil.TileID_Brick) { if (unit.camp == ECampType.Player) { audioService.PlayClipHitBrick(); } map2DService.ReplaceTile(iPos, id, 0); unit.health--; } else if (id == TilemapUtil.TileID_Iron) { if (!bullet.canDestoryIron) { if (unit.camp == ECampType.Player) { audioService.PlayClipHitIron(); } unit.health = 0; } else { if (unit.camp == ECampType.Player) { audioService.PlayClipDestroyIron(); } unit.health = LMath.Max(unit.health - 2, 0); map2DService.ReplaceTile(iPos, id, 0); } } else if (id == TilemapUtil.TileID_Grass) { if (bullet.canDestoryGrass) { if (unit.camp == ECampType.Player) { audioService.PlayClipDestroyGrass(); } unit.health -= 0; map2DService.ReplaceTile(iPos, id, 0); } } else if (id == TilemapUtil.TileID_Wall) { unit.health = 0; } } }
public override void InitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer = null) { base.InitReference(serviceContainer, mgrContainer); _gameEffectService = serviceContainer.GetService <IGameEffectService>(); _gameAudioService = serviceContainer.GetService <IGameAudioService>(); _gameStateService = serviceContainer.GetService <IGameStateService>(); _gameConfigService = serviceContainer.GetService <IGameConfigService>(); _gameCollisionService = serviceContainer.GetService <IGameCollision2DService>(); _gameConstStateService = serviceContainer.GetService <IGameConstStateService>(); _gameUnitService = serviceContainer.GetService <IGameUnitService>(); }
protected override void OnInitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer) { _gameEffectService = serviceContainer.GetService <IGameEffectService>(); _gameAudioService = serviceContainer.GetService <IGameAudioService>(); _gameStateService = serviceContainer.GetService <IGameStateService>(); _gameConfigService = serviceContainer.GetService <IGameConfigService>(); _gameResourceService = serviceContainer.GetService <IGameResourceService>(); _gameConstStateService = serviceContainer.GetService <IGameConstStateService>(); _gameCollision2DService = serviceContainer.GetService <IGameCollision2DService>(); _gameUnitService = serviceContainer.GetService <IGameUnitService>(); }
public override void InitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer) { base.InitReference(serviceContainer, mgrContainer); _networkService = serviceContainer.GetService <INetworkService>(); SimulatorServiceService = serviceContainer.GetService <ISimulatorService>(); _uiService = serviceContainer.GetService <IUIService>(); _gameEffectService = serviceContainer.GetService <IGameEffectService>(); _gameAudioService = serviceContainer.GetService <IGameAudioService>(); _gameStateService = serviceContainer.GetService <IGameStateService>(); _gameConfigService = serviceContainer.GetService <IGameConfigService>(); _gameViewService = serviceContainer.GetService <IGameViewService>(); _gameResourceService = serviceContainer.GetService <IGameResourceService>(); }