Skip to content

Commit

Permalink
Merge pull request #57 from HavlockV/develop
Browse files Browse the repository at this point in the history
0.2.2
  • Loading branch information
HavlockV authored Aug 10, 2020
2 parents d4ac0ff + 8314b0d commit f2bd119
Show file tree
Hide file tree
Showing 416 changed files with 106,604 additions and 447 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
.vs/
package.json
package-lock.json
node_modules
node_modules
*.bak
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,34 @@ Compendium 'Weapons' contains a single test weapon.

## What is working

version 0.2.2 :

* PDFoundry Integration.
* First implementation of range combat.
* Weapon sheet has been modified.
* select a target (or not) and in the combat tab click on a range weapon name. This will start the range combat flow and open a range combat chat-card.
* All bonus and penalties can be overridden by the keeper only.
* Range and difficulty are automatically calculated.
* Bonus for target size, speed are automatically applied.
* Bonus for shooting at point blank is automatically given.
* Calculation of bullets wasted when switching target in automatic fire mode.
* Penalty dice for multi/auto fire are applied.
* Difficulty automatically increased with mode than 2 penalty dice.
* If you don't have a target a fake 'dummy' target will be created.
* Supports auto-fire, burst, single shot, multi shots.
* Supports weapon malfunction.
* Damage rolls (armor is not taken in account).
* What is coming next:
* Implementation of shotgun type weapons and explosives.
* Distribution of damage to the targets and status applied.
* Attribution of malfunction to the corresponding weapons.
* Implementation of fast forwarding for range and melee combat.
* Implementation of bullets.
* Limitation on number of shot fired (depending on the weapon max shot per rounds and bullets in the magazine).
* Support for Japanese translation thanks to AdmiralNyar.
* Bugs correction
* Movement calculation.

version 0.2.1 :

* Template and CSS correction.
Expand Down
2 changes: 1 addition & 1 deletion lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
"CoC7.ItemDescription": "Beschreibung",
"CoC7.WeaponRange": "Reichweite :",
"CoC7.WeaponDamage": "Schaden :",
"CoC7.WeaponRadius": "Radius",
"CoC7.Weapon.BlastRadius": "Radius",
"CoC7.WeaponMalfunction": "Fehlfunktion :",
"CoC7.WeaponUsesPerRound": "Einsatz/Runde :",
"CoC7.WeaponMax": "Max :",
Expand Down
44 changes: 32 additions & 12 deletions lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
"CoC7.TensDice": "tens dice",
"CoC7.SuccessRequired": "{successRequired} success required.",
"CoC7.Roll": "Roll",
"CoC7.Pushing": "Pushing : ",
"CoC7.Pushing": "Pushing",
"CoC7.PushSkill": "Push",
"CoC7.PushedRoll": "(pushed roll)",
"CoC7.SpendLuck": "Spend {luckNeededValue} Luck to pass",
Expand Down Expand Up @@ -96,6 +96,21 @@

"CoC7.combatCard.dive4cover": "Dive for Cover",

"CoC7.rangeCombatCard.SingleShot" : "Single Shot",
"CoC7.rangeCombatCard.MultipleShots" : "Multi. Shots",
"CoC7.rangeCombatCard.Burst" : "Burst Fire",
"CoC7.rangeCombatCard.FullAuto" : "Full Auto",
"CoC7.rangeCombatCard.BaseRange" : "Base range",
"CoC7.rangeCombatCard.LongRange" : "Long range",
"CoC7.rangeCombatCard.ExtremeRange" : "Xtrm range",
"CoC7.rangeCombatCard.Cover" : "Under cover",
"CoC7.rangeCombatCard.PointBlankRange" : "Point blank range",
"CoC7.rangeCombatCard.BigTarget": "Big target",
"CoC7.combatCard.SmallTarget": "Small target",
"CoC7.rangeCombatCard.FastMovingTarget": "Fast",
"CoC7.rangeCombatCard.InMelee": "In melee",
"CoC7.rangeCombatCard.aiming": "Aiming",

"CoC7.DropZone": "DropZone",

"CoC7.SkillValue": "Value",
Expand All @@ -105,15 +120,17 @@
"CoC7.ItemWeight": "Weight",
"CoC7.ItemDetails": "Details",
"CoC7.ItemDescription": "Description",
"CoC7.WeaponRange": "Range :",
"CoC7.WeaponDamage": "Damage :",
"CoC7.WeaponRadius": "Radius",
"CoC7.WeaponMalfunction": "Malfunction :",
"CoC7.WeaponUsesPerRound": "Uses/Round :",
"CoC7.WeaponMax": "Max :",
"CoC7.WeaponBulletsInMag": "Bullets in Mag :",
"CoC7.WeaponSpecial": "Special :",
"CoC7.ItemPrice": "Price :",
"CoC7.WeaponRange": "Range",
"CoC7.WeaponDamage": "Damage",
"CoC7.Weapon.BlastRadius": "Blast radius",
"CoC7.WeaponMalfunction": "Malfunction",
"CoC7.WeaponUsesPerRound": "Round(s)/use",
"CoC7.WeaponSheet.RoundsPerUse.Info": "How many rounds are needed to get the weapon ready to shoot",
"CoC7.WeaponMax": "Max uses/round",
"CoC7.BurstSize": "Bullets/burst",
"CoC7.WeaponBulletsInMag": "Magazine",
"CoC7.WeaponSpecial": "Special",
"CoC7.ItemPrice": "Price",
"CoC7.Armor": "Armor",

"CoC7.EraNvct": "Invictus",
Expand All @@ -139,14 +156,15 @@
"CoC7.WeaponAhdb": "+Half DB",
"CoC7.WeaponAddb": "+DB",
"CoC7.WeaponSlnt": "Silent",
"CoC7.WeaponXplv": "Area of Effect",
"CoC7.WeaponXplv": "Shotgun",
"CoC7.WeaponBrst": "Burst",
"CoC7.WeaponAuto": "Full-auto",
"CoC7.WeaponSpcl": "Special",
"CoC7.WeaponMont": "Mounted",
"CoC7.WeaponDbrl": "Dual barrel",
"CoC7.WeaponBlst": "Blast",
"CoC7.WeaponStun": "Stun",
"CoC7.Weapon.Property.Burn": "Burn",

"CoC7.ErrorItem": "Couldn't locate item",
"CoC7.ErrorActor": "Couldn't locate actor",
Expand All @@ -162,5 +180,7 @@

"CoC7.newSkillName": "new skill",
"CoC7.newItemName": "new item",
"CoC7.newWeaponName": "new weapon"
"CoC7.newWeaponName": "new weapon",

"CoC7.creatureFightingSkill": "Fighting"
}
21 changes: 16 additions & 5 deletions lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
"CoC7.Sex": "Sexe",
"CoC7.Residence": "Résidence",
"CoC7.Birthplace": "Lieu de naissance",
"CoC7.HitPoints": "Points de vie",
"CoC7.HitPoints": "Pts de vie",
"CoC7.HP": "PV",
"CoC7.MagicPoints": "Points de magie",
"CoC7.MagicPoints": "Pts de magie",
"CoC7.MP": "PM",
"CoC7.Sanity": "Santé Mentale",
"CoC7.SAN": "SAN",
Expand Down Expand Up @@ -95,7 +95,7 @@
"CoC7.ItemDescription": "Description",
"CoC7.WeaponRange": "Portée :",
"CoC7.WeaponDamage": "Dégâts :",
"CoC7.WeaponRadius": "Rayon",
"CoC7.Weapon.BlastRadius": "Rayon",
"CoC7.WeaponMalfunction": "Panne :",
"CoC7.WeaponUsesPerRound": "Cadence :",
"CoC7.WeaponMax": "Max :",
Expand Down Expand Up @@ -135,7 +135,18 @@
"CoC7.WeaponStun": "Étourdissante",

"CoC7.ErrorItem": "Impossible de trouver l'item",
"CoC7.ErrorActor": "Impossible de trouver l'actor",
"CoC7.ErrorActor": "Impossible de trouver l'acteur",
"CoC7.ErrorInvalidFormula": "{value} n'est pas une formule valide",
"CoC7.ErrorInvalid": "invalide"
"CoC7.ErrorInvalid": "invalide",

"CoC7.newBioSectionName": "New Section",

"CoC7.dodgeSkillName": "Esquive",
"CoC7.creditRatingSkillName": "Crédit",
"CoC7.fightingSpecializationName": "Combat rapproché",
"CoC7.firearmSpecializationName": "Combat à distance",

"CoC7.newSkillName": "Nouvelle compétence",
"CoC7.newItemName": "Nouvel objet",
"CoC7.newWeaponName": "Nouvel arme"
}
166 changes: 166 additions & 0 deletions lang/ja.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
{
"CoC7.title": "新クトゥルフ神話TRPG",

"CHARAC.STR": "STR",
"CHARAC.Strengh": "筋力",
"CHARAC.CON": "CON",
"CHARAC.Constitution": "体力",
"CHARAC.SIZ": "SIZ",
"CHARAC.Size": "体格",
"CHARAC.DEX": "DEX",
"CHARAC.Dexterity": "敏捷性",
"CHARAC.APP": "APP",
"CHARAC.Appearance": "外観",
"CHARAC.INT": "INT",
"CHARAC.Intelligence": "知性",
"CHARAC.POW": "POW",
"CHARAC.Power": "精神力",
"CHARAC.EDU": "EDU",
"CHARAC.Education": "教育",

"CoC7.Name": "名前",
"CoC7.Occupation": "職業",
"CoC7.Age": "年齢",
"CoC7.Sex": "性別",
"CoC7.Residence": "住所",
"CoC7.Birthplace": "出身",
"CoC7.HitPoints": "耐久力",
"CoC7.HP": "HP",
"CoC7.MagicPoints": "MP",
"CoC7.MP": "MP",
"CoC7.Sanity": "正気度",
"CoC7.SAN": "SAN",
"CoC7.Luck": "幸運",
"CoC7.Movement": "移動率",
"CoC7.Mov": "Mov",
"CoC7.BonusDamage": "ダメージ・ボーナス",
"CoC7.DB": "DB",
"CoC7.Build": "ビルド",
"CoC7.Skills": "技能",
"CoC7.Combat": "戦闘",
"CoC7.Possessions": "装備と収入",
"CoC7.Background": "バックストーリー",
"CoC7.Notes": "メモ",

"CoC7.RegularSuccess": "レギュラー成功",
"CoC7.HardSuccess": "ハード成功",
"CoC7.ExtremeSuccess": "イクストリーム成功",
"CoC7.CriticalSuccess": "クリティカル成功",
"CoC7.Fumble": "ファンブル",
"CoC7.Failure": "失敗",
"CoC7.Malfunction": "{itemName} は故障した!",

"CoC7.Dice": "ダイス",
"CoC7.DiceModifierBonus": "ボーナス",
"CoC7.DiceModifierPenalty": "ペナルティ",
"CoC7.BonusDice": "ボーナス・ダイス",
"CoC7.UnitsDie" : "1の位ダイス",
"CoC7.TensDie": "10の位ダイス",
"CoC7.TensDice": "つの10の位ダイス",
"CoC7.SuccessRequired": "{successRequired}成功が必要",
"CoC7.Roll": "ロール",
"CoC7.Pushing": "プッシュする : ",
"CoC7.PushSkill": "プッシュ",
"CoC7.PushedRoll": "(プッシュ・ロール)",
"CoC7.LuckSpent": "成功するために {luckAmount} 幸運を消費した",
"CoC7.LuckError": "{actorName} には、成功に必要な幸運が残っていない",
"CoC7.RollResult.MoreLuckSpendText": "{{level.LuckToSpend}} 幸運を消費して {{level.difficultyName}} 成功にする",

"CoC7.BonusSelectionWindow": "ボーナス選択ウィンドウ",
"CoC7.RegularDifficulty": "レギュラー",
"CoC7.HardDifficulty": "ハード",
"CoC7.ExtremeDifficulty": "イクストリーム",
"CoC7.CriticalDifficulty": "クリティカル",
"CoC7.RollDifficulty": "ロールの難易度",
"CoC7.RollDifficultyRegular": "レギュラーの難易度",
"CoC7.RollDifficultyHard": "ハードの難易度",
"CoC7.RollDifficultyExtreme": "イクストリームの難易度",
"CoC7.RollDifficultyCritical": "クリティカルの難易度",
"CoC7.RollResult.LuckSpendText": "{luckAmount} 幸運を消費して {successLevel} 成功",
"CoC7.RollDice": "ロール !",

"CoC7.CheckResult": "{name}判定 ({value}%) - {difficulty}の難易度",
"CoC7.ItemCheckResult": "{item} - {skill}判定 ({value}%) - {difficulty}の難易度",
"CoC7.CheckRawValue": "({rawvalue}%) - {difficulty}の難易度",

"CoC7.BonusDamageRoll": "ダメージ・ボーナスのロール",
"CoC7.Type": "種類",
"CoC7.FightBack": "応戦",
"CoC7.Dodge": "回避",
"CoC7.Maneuver": "マヌーバー",
"CoC7.OutNumbered": "数的不利",
"CoC7.combatCard.surpised": "奇襲",
"CoC7.combatCard.autoSuccess": "自動成功",
"CoC7.Advantage": "優勢",
"CoC7.Disadvantage": "劣勢",

"CoC7.combatCard.dive4cover": "掩蔽に飛び込む",

"CoC7.DropZone": "DropZone",

"CoC7.SkillValue": "",
"CoC7.SkillBase": "基本成功率",

"CoC7.ItemQuantity": "数量",
"CoC7.ItemWeight": "重量",
"CoC7.ItemDetails": "詳細",
"CoC7.ItemDescription": "説明",
"CoC7.WeaponRange": "基本射程 :",
"CoC7.WeaponDamage": "ダメージ :",
"CoC7.WeaponRadius": "減衰半径",
"CoC7.WeaponMalfunction": "故障ナンバー :",
"CoC7.WeaponUsesPerRound": "1ラウンドの攻撃回数 :",
"CoC7.WeaponMax": "最大 :",
"CoC7.WeaponBulletsInMag": "装弾数 :",
"CoC7.WeaponSpecial": "特殊効果 :",
"CoC7.ItemPrice": "価格 :",
"CoC7.Armor": "装甲",

"CoC7.EraNvct": "インヴィクタス",
"CoC7.EraDrka": "ダークエイジ",
"CoC7.EraDdts": "西部開拓",
"CoC7.EraGlit": "クトゥルフ・バイ・ガスライト",
"CoC7.Era1920": "1920年代",
"CoC7.EraPulp": "パルプ・クトゥルフ",
"CoC7.EraMdrn": "現代",

"CoC7.SkillNoXpGain": "成長しない技能",
"CoC7.SkillSpecial": "専門分野を選ぶ",
"CoC7.SkillRarity": "まれ",
"CoC7.SkillPush": "プッシュ可能",
"CoC7.SkillCombat": "戦闘",
"CoC7.SkillFighting": "近接格闘",
"CoC7.SkillFirearm": "射撃",

"CoC7.WeaponRngd": "基本射程",
"CoC7.WeaponTouch": "タッチ",
"CoC7.WeaponImpl": "貫通",
"CoC7.WeaponRare": "まれ",
"CoC7.WeaponAhdb": "+1/2 DB",
"CoC7.WeaponAddb": "+DB",
"CoC7.WeaponSlnt": "消音性能",
"CoC7.WeaponXplv": "範囲攻撃",
"CoC7.WeaponBrst": "バースト",
"CoC7.WeaponAuto": "フルオート",
"CoC7.WeaponSpcl": "特殊効果",
"CoC7.WeaponMont": "搭載",
"CoC7.WeaponDbrl": "二連式",
"CoC7.WeaponBlst": "衝撃",
"CoC7.WeaponStun": "スタン",

"CoC7.ErrorItem": "Couldn't locate item",
"CoC7.ErrorActor": "Couldn't locate actor",
"CoC7.ErrorInvalidFormula": "{value} は有効な数式ではありません",
"CoC7.ErrorInvalid": "無効です",

"CoC7.newBioSectionName": "New Section",

"CoC7.dodgeSkillName": "回避",
"CoC7.creditRatingSkillName": "信用",
"CoC7.fightingSpecializationName": "近接格闘",
"CoC7.firearmSpecializationName": "射撃",

"CoC7.newSkillName": "新技能",
"CoC7.newItemName": "新アイテム",
"CoC7.newWeaponName": "新武器"
}
8 changes: 4 additions & 4 deletions module/actors/actor.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,14 @@ export class CoCActor extends Actor {
if( this.getActorFlag('initialized')) return; //Change to return skill ?

//Check if fighting skills exists, if not create it and the associated attack.
const skills = this.getSkillsByName( COC7.baseCreatureSkill);
const skills = this.getSkillsByName( game.i18n.localize(COC7.creatureFightingSkill));
if( skills.length == 0){
//Creating natural attack skill
try{
const skill = await this.createEmbeddedEntity(
'OwnedItem',
{
name: COC7.baseCreatureSkill,
name: game.i18n.localize(COC7.creatureFightingSkill),
type: 'skill',
data:{
base: 0,
Expand Down Expand Up @@ -463,9 +463,9 @@ export class CoCActor extends Actor {
if( this.data.data.attribs.mov.auto)
{
let MOV;
if( this.data.data.characteristics.dex.value < this.data.data.characteristics.siz.value && this.data.data.characteristics.str.value < this.data.data.characteristics.siz.value) MOV = 7;
if( this.data.data.characteristics.dex.value < this.data.data.characteristics.siz.value && this.data.data.characteristics.str.value < this.data.data.characteristics.siz.value) MOV = 7;
if( this.data.data.characteristics.dex.value >= this.data.data.characteristics.siz.value || this.data.data.characteristics.str.value >= this.data.data.characteristics.siz.value) MOV = 8;
if( this.data.data.characteristics.dex.value >= this.data.data.characteristics.siz.value && this.data.data.characteristics.str.value >= this.data.data.characteristics.siz.value) MOV = 9;
if( this.data.data.characteristics.dex.value > this.data.data.characteristics.siz.value && this.data.data.characteristics.str.value > this.data.data.characteristics.siz.value) MOV = 9; // Bug correction by AdmiralNyar.
if( this.data.data.type != 'creature'){
if( !isNaN(parseInt(this.data.data.infos.age))) MOV = parseInt(this.data.data.infos.age) >= 40? MOV - Math.floor( parseInt(this.data.data.infos.age) / 10) + 3: MOV;
}
Expand Down
Loading

0 comments on commit f2bd119

Please sign in to comment.