Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local ReplicatedStorage = game:GetService("ReplicatedStorage").ReplicatedStoragePackage
- local ServerScriptService = game:GetService("ServerScriptService").ServerScriptServicePackage
- local ServerStorage = game:GetService("ServerStorage").ServerStoragePackage
- local CustomEnum = require(ReplicatedStorage.Modules.CustomEnum)
- local PlayerStats = require(ServerScriptService.Modules.PlayerStats)
- local FightModule = require(ServerScriptService.Modules.FightModule)
- local FighterDetails = require(ServerScriptService.Parent.FighterDetails)
- local Types = require(ReplicatedStorage.Modules.Types)
- local fightRemote = ReplicatedStorage.Remotes.FightRemote
- local abilityFetcher = ReplicatedStorage.Remotes.AbilityFetcher
- local turnInfoBindable = ServerStorage.Bindables.GetTurnInfo
- local function CheckValidRequest(player, playerTurns, playedTurns, fighter)
- if playerTurns[playedTurns] ~= player.UserId then return false end
- if fighter.isAttacking or fighter.isBlocking then return false end
- return true
- end
- abilityFetcher.OnServerInvoke = function(player)
- if PlayerStats[player.UserId].fighter.transformed then
- return FighterDetails[PlayerStats[player.UserId].fighter.id].AbilitiesTransformed
- end
- return FighterDetails[PlayerStats[player.UserId].fighter.id].Abilities
- end
- fightRemote.OnServerEvent:Connect(function(player, AttackType, ability: number)
- local playerTurns, playedTurns = turnInfoBindable:Invoke()
- local fighter: Types.Fighter = PlayerStats[player.UserId].fighter
- if not CheckValidRequest(player, playerTurns, playedTurns, fighter) then return end -- sanity check
- if AttackType == CustomEnum.AttackType.Attack then
- FightModule.Attack(player, PlayerStats[player.UserId].fighter)
- elseif AttackType == CustomEnum.AttackType.Skip then
- FightModule.SkipTurn()
- elseif AttackType == CustomEnum.AttackType.Ability then
- FightModule.Ability(player, fighter, ability)
- elseif AttackType == CustomEnum.AttackType.Defend then
- FightModule.Defend(player, fighter)
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement