Skip to content

Commit 196fcb6

Browse files
committed
updating the May 2018 patch
1 parent 544f069 commit 196fcb6

File tree

8 files changed

+103
-60
lines changed

8 files changed

+103
-60
lines changed

OPRPCharBuild/OPRPCharBuild/Add_TechStats.cs

+6-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public Add_TechStats(string opt_, int rank_, int pow_, string range_) {
3030
InitializeComponent();
3131
// Set Variables
3232
statOpt = opt_;
33+
this.Text = opt_;
3334
rank = rank_;
3435
power = pow_;
3536
// Add to Combobox
@@ -60,7 +61,7 @@ public string LoadDialog(ref Stats techStats, string textbox) {
6061
numericUpDown_Sta.Value = techStats.stamina;
6162
numericUpDown_Acc.Value = techStats.accuracy;
6263
// Establish Duration
63-
if (alterSetting.duration) {
64+
if (alterSetting.durTable) {
6465
label_PostDur.Visible = true;
6566
if (statOpt == Database.BUF_FOOD) {
6667
label_PostDur.Text = "24 Hour Duration";
@@ -117,7 +118,10 @@ private double calcStdTable(int rankBuff, string statOpt) {
117118
else { return decRank * 0.70; }
118119
}
119120
// Standard Table
120-
if (rankBuff >= 44 || statOpt == Database.BUF_ZOAN) { return decRank; }
121+
if (rankBuff >= 44 || statOpt == Database.BUF_ZOAN ||
122+
statOpt == Database.BUF_SULONG) {
123+
return decRank;
124+
}
121125
else if (rankBuff >= 28) { return decRank * 0.85; }
122126
else if (rankBuff >= 14) { return decRank * 0.70; }
123127
else { return decRank * 0.60; }

OPRPCharBuild/OPRPCharBuild/Add_Technique.cs

+7-2
Original file line numberDiff line numberDiff line change
@@ -741,10 +741,13 @@ private void Add_Technique_Load(object sender, EventArgs e) {
741741
effectsComboList.AddRange(Database.getCarpenterEffects());
742742
}
743743
}
744-
// Add Battle Suits trait
744+
// Add Trait specific effects
745745
if (traitsList.Any(x => x.name == Database.TR_BATSUI)) {
746746
effectsComboList.Add(Database.EFF_BSUIT);
747747
}
748+
if (traitsList.Any(x => x.name == Database.TR_MINKMA)) {
749+
effectsComboList.Add(Database.EFF_ELECT);
750+
}
748751
// now AddRange into the combobox
749752
comboBox_Effect.Items.AddRange(effectsComboList.ToArray());
750753

@@ -782,7 +785,9 @@ private void Add_Technique_Load(object sender, EventArgs e) {
782785
MessageBox.Show("Error in configuring Cyborg Options.\nReason: " + ex.Message, "Error");
783786
}
784787
// Signature Technique Trait
785-
if (traitsList.Any(x => x.name == Database.TR_SIGTEC)) { checkBox_SigTech.Enabled = true; }
788+
if (traitsList.Any(x => x.name == Database.TR_SIGTEC || x.name == Database.TR_MINKMA)) {
789+
checkBox_SigTech.Enabled = true;
790+
}
786791

787792
// Now everything is loaded: We can call Copy_Dict_To_Form
788793
// If we're branching a Technique, we want to duplicate, and then modify.

OPRPCharBuild/OPRPCharBuild/Database.cs

+24-17
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ static public Profession getProfession(string name) {
181181
TR_MASMIS = "Master of Misdirection",
182182
TR_MEDMAL = "Medical Malpractice",
183183
TR_MERFOL = "Merfolk",
184+
TR_MINKMA = "Minkman",
184185
TR_NATARM = "Natural Armour",
185186
TR_NEWCYB = "New World Cyborg",
186187
TR_PERFAS = "Performance Assistant",
@@ -295,6 +296,7 @@ static public Profession getProfession(string name) {
295296
{ TR_MASMIS, new Trait(TR_MASMIS, 0, 1, "Those who practice stealth to depths far greater than most, becoming far more proficient than even others of their trade. These characters may treat any environment as Natural Camouflage, and the Silent effect becomes a General Effect.") },
296297
{ TR_MEDMAL, new Trait(TR_MEDMAL, 0, 1, "Part of knowing what is required to keep somebody healthy is knowing what will cause others to become unhealthy. Doctors who put this knowledge to practical use may make especially potent poisons. They gain special Technique Points which can only be used on toxins that harm or debuff, of the amount of half their fortune.") },
297298
{ TR_MERFOL, new Trait(TR_MERFOL, 1, 0, "In place of legs these characters have a tail which splits down the middle while they are standing on land (For this RP's purposes, this is the at any age, not just 30+). They may breathe underwater and gain the Great Speed trait whilst submerged, and their movements underwater are completely unhindered. Spending too long out of water can fatigue them somewhat. In addition, merfolk can talk to most types of fish, but not seakings.") },
299+
{ TR_MINKMA, new Trait(TR_MINKMA, 2, 0, "Minks are humanoids with mammal animal features. Minks gain access to Sulong form and the technique effect Electro. They also gain attributes or natural weapons based on their species.") },
298300
{ TR_NATARM, new Trait(TR_NATARM, 0, 1, "Through all the time spent in the forge, working on weapons, the character’s arms, up to their elbows, and their legs, up to their knees, have gained flesh that is literally as tough as iron, making them much more resistant to physical damage.") },
299301
{ TR_NEWCYB, new Trait(TR_NEWCYB, 5, 0, "These cyborgs represent the very pinnacle of scientific achievement in the world of cybernetics, being by right more machine than human. A character must be in either the Grand Line or New World to access this kind of technology. They can be made of materials up to titanium in strength but may have built-in armor made from custom-materials. Alongside this, these cyborgs are given up to 21M Beli worth of modifications. New World Cyborgs pay 30% to upgrade weaker materials. These Cyborgs are able to create body systems that provide personal flight, self-repair, fire energy projectiles and more.\n" +
300302
"[list][*]Appendages - 4.5M Beli/per\n" +
@@ -473,6 +475,7 @@ static public Rokushiki getRoku(string name) {
473475
EFF_STBIN = "Starter Tier Bind",
474476
EFF_MIBIN = "Mid Tier Bind",
475477
EFF_HIBIN = "High Tier Bind",
478+
EFF_ELECT = "Electro",
476479
EFF_MELEE = "Melee",
477480
EFF_SHORT = "Short",
478481
EFF_MEDIU = "Medium",
@@ -594,6 +597,8 @@ static public Rokushiki getRoku(string name) {
594597
"Techniques which bypass Defensive Type Techniques by transferring damage through blocks on contact or creating shockwaves that attack an opponent internally.") },
595598
{ EFF_SPEBL, new Effect(EFF_SPEBL, false, 28, 28,
596599
"Block techniques with special properties to defend against a specific type of attack. They significantly reduce damage against the chosen type regardless of the power behind them.") },
600+
{ EFF_ELECT, new Effect(EFF_ELECT, false, 4, 4,
601+
"Minks can channel electricity through parts of their bodies and objects in order to shock anything they touch. The greater the techique power, the greater the shock.") },
597602
{ EFF_STBRE, new Effect(EFF_STBRE, false, 14, 14,
598603
"A technique capable of breaking a single weapon or piece of armour of Starter Tier Material (i.e. Iron).") },
599604
{ EFF_MIBRE, new Effect(EFF_MIBRE, false, 28, 28,
@@ -881,26 +886,28 @@ static public List<string> getCarpenterEffects() {
881886
BUF_DFBUFF = "Other DF (Buff)",
882887
BUF_DFDEBU = "Other DF (Debuff)",
883888
BUF_OBHAKI = "Observation Haki",
884-
BUF_CQHAKI = "King's Haki";
889+
BUF_CQHAKI = "King's Haki",
890+
BUF_SULONG = "Sulong";
885891
#endregion
886892

887893
static private Dictionary<string, StatAlter> statDict = new Dictionary<string, StatAlter>() {
888-
{ BUF_WILLPO, new StatAlter(StatAlter.BUFF, true, false, false) },
889-
{ BUF_STANCE, new StatAlter(StatAlter.STANCE, false, true, false) },
890-
{ BUF_LIFRET, new StatAlter(StatAlter.STANCE, false, true, false) },
891-
{ BUF_POISON, new StatAlter(StatAlter.DEBUFF, false, true, true) },
892-
{ BUF_DRUG, new StatAlter(StatAlter.BUFF, true, true, true) },
893-
{ BUF_CRITHI, new StatAlter(StatAlter.DEBUFF, false, true, true) },
894-
{ BUF_ANASTR, new StatAlter(StatAlter.DEBUFF, false, true, true) },
895-
{ BUF_QUICKS, new StatAlter(StatAlter.DEBUFF, false, true, true) },
896-
{ BUF_PERFOR, new StatAlter(StatAlter.BUFF, true, true, false) },
897-
{ BUF_FOOD, new StatAlter(StatAlter.BUFF, false, true, true) },
898-
{ BUF_ROKUOG, new StatAlter(StatAlter.DEBUFF, false, true, true) },
899-
{ BUF_ZOAN, new StatAlter(StatAlter.BUFF, true, false, false) },
900-
{ BUF_DFBUFF, new StatAlter(StatAlter.BUFF, true, true, true) },
901-
{ BUF_DFDEBU, new StatAlter(StatAlter.DEBUFF, false, true, true) },
902-
{ BUF_OBHAKI, new StatAlter(StatAlter.BUFF, true, true, false) },
903-
{ BUF_CQHAKI, new StatAlter(StatAlter.DEBUFF, false, true, true) }
894+
{ BUF_WILLPO, new StatAlter(StatAlter.BUFF, true, false) },
895+
{ BUF_STANCE, new StatAlter(StatAlter.STANCE, false, false) },
896+
{ BUF_LIFRET, new StatAlter(StatAlter.STANCE, false, false) },
897+
{ BUF_POISON, new StatAlter(StatAlter.DEBUFF, false, true) },
898+
{ BUF_DRUG, new StatAlter(StatAlter.BUFF, true, true) },
899+
{ BUF_CRITHI, new StatAlter(StatAlter.DEBUFF, false, true) },
900+
{ BUF_ANASTR, new StatAlter(StatAlter.DEBUFF, false, true) },
901+
{ BUF_QUICKS, new StatAlter(StatAlter.DEBUFF, false, true) },
902+
{ BUF_PERFOR, new StatAlter(StatAlter.BUFF, true, false) },
903+
{ BUF_FOOD, new StatAlter(StatAlter.BUFF, false, true) },
904+
{ BUF_ROKUOG, new StatAlter(StatAlter.DEBUFF, false, true) },
905+
{ BUF_ZOAN, new StatAlter(StatAlter.BUFF, true, false) },
906+
{ BUF_DFBUFF, new StatAlter(StatAlter.BUFF, true, true) },
907+
{ BUF_DFDEBU, new StatAlter(StatAlter.DEBUFF, false, true) },
908+
{ BUF_OBHAKI, new StatAlter(StatAlter.BUFF, true, false) },
909+
{ BUF_CQHAKI, new StatAlter(StatAlter.DEBUFF, false, true) },
910+
{ BUF_SULONG, new StatAlter(StatAlter.BUFF, true, true) }
904911
};
905912

906913
// Getter function of the StatAlter dictionary

OPRPCharBuild/OPRPCharBuild/MainForm.cs

+21-31
Original file line numberDiff line numberDiff line change
@@ -316,51 +316,41 @@ private void Update_AP_Count() {
316316
label_SDonAP.Text = SD + " SD spent on ";
317317
}
318318

319+
// For below function
320+
private const int CONV_CAP_1 = 200;
321+
private const int CONV_CAP_2 = 600;
322+
private const int CONV_CAP_3 = 1000;
323+
319324
// Calculating Stat Points
320325
private void Update_Stat_Points() {
321326
int SD_in = (int)numericUpDown_SDintoStats.Value;
322327
string calc = "[32";
323328
int SP = 32;
324-
if (SD_in >= 0 && SD_in <= 150) {
325-
// 0-150SD is 1:1
329+
if (SD_in >= 0 && SD_in <= CONV_CAP_1) {
330+
// 1:1
326331
SP += SD_in;
327332
calc += " + " + SD_in;
328333
}
329-
else if (SD_in > 150 && SD_in <= 250) {
330-
// 151-250SD is 1.5:1
331-
int remain = SD_in - 150;
332-
int convert = (int)((double)remain / 1.5);
333-
SP += 150 + convert;
334-
calc += " + 150 + " + convert + " (" + remain + "/1.5)";
335-
// i.e. Calculations: 32 + 150 + 66(100/1.5)
336-
}
337-
else if (SD_in > 250 && SD_in <= 350) {
338-
// 251-350SD is 2:1
339-
int remain = SD_in - 150 - 100; // this is in SD
334+
else if (SD_in > CONV_CAP_1 && SD_in <= CONV_CAP_2) {
335+
// 2:1
336+
int remain = SD_in - CONV_CAP_1; // this is in SD
340337
int convert = remain / 2;
341-
SP += 150 + 66 + convert;
342-
calc += " + 150 + 66 (100/1.5) + " + convert + " (" + remain + "/2)";
338+
SP += 200 + convert;
339+
calc += " + 200 + " + convert + " (" + remain + "/2)";
343340
}
344-
else if (SD_in > 350 && SD_in <= 800) {
345-
// 351-800 SD is 3:1
346-
int remain = SD_in - 150 - 100 - 100;
341+
else if (SD_in > CONV_CAP_2 && SD_in <= CONV_CAP_3) {
342+
// 4:1
343+
int remain = SD_in - CONV_CAP_1 - CONV_CAP_2;
347344
int convert = remain / 3;
348-
SP += 150 + 66 + 50 + convert;
349-
calc += " + 150 + 66 (100/1.5) + 50 (100/2) + " + convert + " (" + remain + "/3)";
350-
}
351-
else if (SD_in > 800 && SD_in <= 1200) {
352-
// 801-1200 SD is 4:1
353-
int remain = SD_in - 150 - 100 - 100 - 450;
354-
int convert = remain / 4;
355-
SP += 150 + 66 + 50 + 150 + convert;
356-
calc += " + 150 + 66 (100/1.5) + 50 (100/2) + 150 (450/3) + " + convert + " (" + remain + "/4)";
345+
SP += 200 + 200 + convert;
346+
calc += " + 200 + 200 (400/2) + " + convert + " (" + remain + "/4)";
357347
}
358348
else {
359-
// 1201+ SD is 5:1
360-
int remain = SD_in - 150 - 100 - 100 - 450 - 400;
349+
// 5:1
350+
int remain = SD_in - CONV_CAP_1 - CONV_CAP_2 - CONV_CAP_3;
361351
int convert = remain / 5;
362-
SP += 150 + 66 + 50 + 150 + 100 + convert;
363-
calc += " + 150 + 66 (100/1.5) + 50 (100/2) + 150 (450/3) + 100 (400/4) + " + convert + " (" + remain + "/5)";
352+
SP += 200 + 200 + 100 + convert;
353+
calc += " + 200 + 200 (400/2) + 100 (400/4) " + convert + " (" + remain + "/5)";
364354
}
365355
calc += ']';
366356
textBox_StatPoints.Text = SP.ToString();

OPRPCharBuild/OPRPCharBuild/OPRPCharBuild.csproj

+2-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
<GenerateManifests>true</GenerateManifests>
7474
</PropertyGroup>
7575
<PropertyGroup>
76-
<SignManifests>true</SignManifests>
76+
<SignManifests>false</SignManifests>
7777
</PropertyGroup>
7878
<PropertyGroup>
7979
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
@@ -172,6 +172,7 @@
172172
<DependentUpon>SelectOptions.cs</DependentUpon>
173173
</Compile>
174174
<Compile Include="Serialize.cs" />
175+
<Compile Include="Settings.cs" />
175176
<Compile Include="Sheet.cs">
176177
<SubType>Form</SubType>
177178
</Compile>
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
namespace OPRPCharBuild.Properties {
2+
3+
4+
// This class allows you to handle specific events on the settings class:
5+
// The SettingChanging event is raised before a setting's value is changed.
6+
// The PropertyChanged event is raised after a setting's value is changed.
7+
// The SettingsLoaded event is raised after the setting values are loaded.
8+
// The SettingsSaving event is raised before the setting values are saved.
9+
internal sealed partial class Settings {
10+
11+
public Settings() {
12+
// // To add event handlers for saving and changing settings, uncomment the lines below:
13+
//
14+
// this.SettingChanging += this.SettingChangingEventHandler;
15+
//
16+
// this.SettingsSaving += this.SettingsSavingEventHandler;
17+
//
18+
}
19+
20+
private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
21+
// Add code to handle the SettingChangingEvent event here.
22+
}
23+
24+
private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
25+
// Add code to handle the SettingsSaving event here.
26+
}
27+
}
28+
}

OPRPCharBuild/OPRPCharBuild/StatAlter.cs

+5-7
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@ public class StatAlter
1212
public const int DEBUFF = 1;
1313
public const int STANCE = 2;
1414

15-
public int type;
16-
public bool majorBuff;
17-
public bool stdTable;
18-
public bool duration; // Does this follow a duration?
15+
public int type; // Buff or Debuff?
16+
public bool majorBuff; // Major buff?
17+
public bool durTable; // Does this follow a duration?
1918

20-
public StatAlter(int type_, bool major_, bool std_, bool prof_) {
19+
public StatAlter(int type_, bool major_, bool dura_) {
2120
type = type_;
2221
majorBuff = major_;
23-
stdTable = std_;
24-
duration = prof_;
22+
durTable = dura_;
2523
}
2624
}
2725
}

README.md

+10
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@ Based on OPRP usernames
1818

1919
Version History
2020
---------------
21+
### v1.8.0
22+
* Updated to May 2018 patch
23+
24+
### v1.7.0
25+
* Updated to July 2017 patch
26+
* Effects are now customizable
27+
* QoL update on Techniques and Categories
28+
* Template is now editable
29+
* Multiple bugfixes
30+
2131
### v1.6.3
2232
* Hotfixed Bug: Fixed broken "Delete" on Techniques
2333

0 commit comments

Comments
 (0)