diff --git a/.github/workflows/upload_deploy.yml b/.github/workflows/upload_deploy.yml
new file mode 100644
index 0000000..fec0f22
--- /dev/null
+++ b/.github/workflows/upload_deploy.yml
@@ -0,0 +1,78 @@
+name: "upload_deploy"
+
+###############################################################################
+# This ci is skipped in THUAI6 for THUAI6 use cloud disk to distribute.
+# To use automatically distribution, comment out `if: false` in the following
+# two jobs.
+###############################################################################
+
+on:
+ push:
+ branches: [ master, dev ]
+
+jobs:
+ build_upload:
+ runs-on: windows-latest
+ if: false # Skip this job
+ steps:
+ - uses: actions/checkout@v1
+
+ - name: Install SSH
+ uses: shimataro/ssh-key-action@v2
+ with:
+ key: ${{ secrets.SSH_PRIVATE_KEY }}
+ known_hosts: 127.0.0.1
+
+ - name: Setup dotnet Core
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 6.0.x
+
+ - name: Setup Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.9.2'
+ architecture: 'x64'
+
+ - name: Git Submodule
+ run: git submodule update --init --recursive
+
+ - name: Pip Install paramiko
+ run: pip install paramiko
+
+ - name: Publish
+ run: |
+ New-Item -Path . -Name "THUAI6" -ItemType "directory"
+ cmd /c ./dependency/shell/publish.cmd
+ python ./dependency/py/upload.py --id 118.195.131.159 --key ${{ secrets.SERVER_PASSWORD }} CAPI THUAI6
+
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+
+ - name: make directory
+ run: mkdir ./Server
+
+ - name: Log in to DockerHub
+ run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
+
+ - name: Setup .NET Core
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 6.0.x
+
+ - name: Git Submodule
+ run: pushd ./CAPI && git submodule update --init --recursive && popd
+
+ - name: Build CAPI_compile docker image
+ run: docker build -t ${{ secrets.DOCKER_USERNAME }}/thuai6_compiler:latest -f ./dependency/Dockerfile/Dockerfile_compile .
+ - name: Push CAPI_compile image to DockerHub
+ run: docker push ${{ secrets.DOCKER_USERNAME }}/thuai6_compiler:latest
+
+ - name: Publish server
+ run: dotnet publish "./logic/Server/Server.csproj" -c Release -r linux-x64 --self-contained true -o ./Server
+ - name: Build runner docker image
+ run: docker build -t ${{ secrets.DOCKER_USERNAME }}/thuai6_runner:latest -f ./dependency/Dockerfile/Dockerfile_run .
+ - name: Push runner image to DockerHub
+ run: docker push ${{ secrets.DOCKER_USERNAME }}/thuai6_runner:latest
diff --git a/logic/GameClass/GameObj/Character/Character.Student.cs b/logic/GameClass/GameObj/Character/Character.Student.cs
index 60fa091..0aeeb0c 100644
--- a/logic/GameClass/GameObj/Character/Character.Student.cs
+++ b/logic/GameClass/GameObj/Character/Character.Student.cs
@@ -141,6 +141,12 @@ namespace GameClass.GameObj
}
}
}
+ public override void AddScore(int add)
+ {
+ if (parent == null)
+ base.AddScore(add);
+ else parent.AddScore(add);
+ }
public Golem(XY initPos, int initRadius, Character? parent) : base(initPos, initRadius, CharacterType.Robot)
{
this.parent = parent;
diff --git a/logic/GameClass/GameObj/Character/Character.cs b/logic/GameClass/GameObj/Character/Character.cs
index 502facf..b6d040a 100644
--- a/logic/GameClass/GameObj/Character/Character.cs
+++ b/logic/GameClass/GameObj/Character/Character.cs
@@ -349,7 +349,7 @@ namespace GameClass.GameObj
/// 加分
///
/// 增加量
- public void AddScore(int add)
+ public virtual void AddScore(int add)
{
lock (gameObjLock)
{
@@ -357,18 +357,6 @@ namespace GameClass.GameObj
//Debugger.Output(this, " 's score has been added to: " + score.ToString());
}
}
- ///
- /// 减分
- ///
- /// 减少量
- public void SubScore(int sub)
- {
- lock (gameObjLock)
- {
- score -= sub;
- Debugger.Output(this, " 's score has been subed to: " + score.ToString());
- }
- }
///
/// 角色所属队伍ID
diff --git a/logic/Gaming/CharacterManager .cs b/logic/Gaming/CharacterManager .cs
index 5ca5692..071ac60 100644
--- a/logic/Gaming/CharacterManager .cs
+++ b/logic/Gaming/CharacterManager .cs
@@ -155,7 +155,7 @@ namespace Gaming
newPlayer.AddBgm(BgmType.GhostIsComing, (double)newPlayer.AlertnessRadius / XY.Distance(newPlayer.Position, person.Position));
else newPlayer.AddBgm(BgmType.GhostIsComing, 0);
}
- if (newPlayer.CharacterType != CharacterType.Teacher && !newPlayer.NoHp() && newPlayer.PlayerState != PlayerStateType.Stunned && XY.Distance(newPlayer.Position, person.Position) <= GameData.PinningDownRange)
+ if (newPlayer.CharacterType != CharacterType.Teacher && newPlayer.CharacterType != CharacterType.Robot && !newPlayer.NoHp() && newPlayer.PlayerState != PlayerStateType.Stunned && XY.Distance(newPlayer.Position, person.Position) <= GameData.PinningDownRange)
{
TimePinningDown += GameData.checkInterval;
newPlayer.AddScore(GameData.StudentScorePinDown(TimePinningDown) - ScoreAdded);
diff --git a/logic/Gaming/SkillManager/SkillManager.ActiveSkill.cs b/logic/Gaming/SkillManager/SkillManager.ActiveSkill.cs
index 6d03565..061dc79 100644
--- a/logic/Gaming/SkillManager/SkillManager.ActiveSkill.cs
+++ b/logic/Gaming/SkillManager/SkillManager.ActiveSkill.cs
@@ -103,14 +103,15 @@ namespace Gaming
{ });
}
- public static bool UseRobot(Character player)
+ public bool UseRobot(Character player)
{
IGolem? golem = (IGolem?)(((SummonGolem)player.FindIActiveSkill(ActiveSkillType.SummonGolem)).GolemSummoned);
- Debugger.Output(player, (golem != null).ToString());
if ((!player.Commandable()) || ((SummonGolem)player.FindIActiveSkill(ActiveSkillType.SummonGolem)).GolemSummoned == null) return false;
- Debugger.Output(player, player.PlayerID.ToString());
+ Debugger.Output(player, "use robot!");
IActiveSkill activeSkill = player.FindIActiveSkill(ActiveSkillType.UseRobot);
activeSkill.IsBeingUsed = (activeSkill.IsBeingUsed) ? false : true;
+ if (activeSkill.IsBeingUsed) characterManager.SetPlayerState(player, PlayerStateType.UsingSkill);
+ else characterManager.SetPlayerState(player);
return true;
}